首页 > 解决方案 > 通过php网页上传文件

问题描述

我试图创建一个允许用户上传 nifti(.nii, .nii.gz) 文件的 apache2 网页。

我尝试了两种不同的方法:

  1. 在 WSL Ubuntu 18.04 上,“move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)" 不返回任何内容。它完全失败了。

  2. 在 XAMPP 上,页面可以获取 PDF、JPG ..etc 等文件,但不能获取 .nii、.exe(我检查了 $_FILES['file']['tmp_name']; 为空)

HTML:

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select file to upload: 
    <input type="file" name="file"> 
    <input class="" type="submit" value="Upload" name="submit">
</form>

php:

   $target_dir = "/home/user/public_html/uploads/";
   $target_file = $target_dir . basename($_FILES["file"]["name"]);
   $uploadOk = 1;
   $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
   $file_tmp =$_FILES['file']['tmp_name'];
   if ($uploadOk == 0) {
     echo "Sorry, your file was not uploaded.";
     echo "<br>";
   } else {
   $moving = move_uploaded_file($file_tmp, $target_file);
   echo $moving;
   echo "here <br>";
   if ($moving) {
     echo "The file ". basename( $_FILES["file"]["name"]). " has been 
 uploaded.";
   } else {
     echo "Sorry, there was an error uploading your file.";
   }
   }
  1. 有人在 WSL apache2 上成功上传文件吗?
  2. 为什么我不能上传“.nii”、“.nii.gz”、“.exe”之类的文件?

感谢您的阅读!

标签: phpfileupload

解决方案


好的,经过几个小时的尝试,我发现为什么我不能上传“.nii”、“.nii.gz”。但我有新的问题。

即使我已经设置:

upload_max_filesize = 100M
Post_max_size = 500M

该页面仍然无法获取大于 8M 的文件,我在 php error.log 上看到了这一点。

.gz文件小于8M,但解压出来的文件大于8M,无法上传。

有人知道为什么我的“php.ini”设置不起作用吗?


推荐阅读