为了账号安全,请及时绑定邮箱和手机立即绑定

is_uploaded_file 函数在 linux 中有效,但在 Windows 中无效

is_uploaded_file 函数在 linux 中有效,但在 Windows 中无效

PHP
元芳怎么了 2022-07-02 16:24:00
代码if(is_array($_FILES) && isset($_FILES['photography_attachment'])) {      if(is_uploaded_file($_FILES['photography_attachment']['tmp_name'])) {        $fileName = $_FILES["photography_attachment"]["name"]; // The file name        $fileTmpLoc = $_FILES["photography_attachment"]["tmp_name"]; // File in the PHP tmp folder        $fileType = $_FILES["photography_attachment"]["type"]; // The type of file it is        $fileSize = $_FILES["photography_attachment"]["size"]; // File size in bytes        $fileErrorMsg = $_FILES["photography_attachment"]["error"]; // 0 = false | 1 = true        $kaboom = explode(".", $fileName); // Split file name into an array using the dot        $fileExt = end($kaboom); // Now target the last array element to get the file extension        if (!$fileTmpLoc) { // if file not chosen          $error = $error."<p>Please browse for a file before clicking the upload button.</p>";        } else if($fileSize > 10485760) { // if file size is larger than 2 Megabytes          $error = $error."<p><span>Your file was larger than</span> 10 <span>Megabytes in size</span>.</p>";          unlink($fileTmpLoc); // Remove the uploaded file from the PHP temp folder        } else if (!preg_match("/.(gif|jpg|png|jpeg)$/i", $fileName) ) {          // This condition is only if you wish to allow uploading of specific file types          $error = $error."<p>Your file was not .gif, .jpg, .png</p>";          unlink($fileTmpLoc); // Remove the uploaded file from the PHP temp folder        } else if ($fileErrorMsg == 1) { // if file upload error key is equal to 1          $error = $error."<p>An error occured while processing the file. Try again.</p>";        }     }else{ $error = "Please try again !!!"; }  }else{ $error = "Attachment field cannot be blank!"; }总是转到“请再试一次!!!” 否则在 Windows 中上传图像时,但在 linux 系统中运行良好。你能请任何人帮我解决这个问题吗?
查看完整描述

1 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

在 Windows 平台上,您必须将文件路径中的“\”替换为“/”


像这样:


$file = str_replace ("\\", "/", $_FILES['photography_attachment']['tmp_name']);

if(is_uploaded_file($file)) {

   [...]

}

或者对所有系统使用 php build in 方法:


$file = realpath($_FILES['photography_attachment']['tmp_name']);

if(is_uploaded_file($file)) {

   [...]

}


查看完整回答
反对 回复 2022-07-02
  • 1 回答
  • 0 关注
  • 142 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号