首页 > 解决方案 > 如何使用 PHP 设置在主机中上传文件的路径

问题描述

我想上传一些文件到虚拟主机,不确定文件将保存在哪里。

这是我正在使用的代码。看到我假装将它们保存在 /stage/ 文件夹中。

 <?php
if(isset($_FILES['documents'])){

foreach($_FILES['documents']['tmp_name'] as $key => $tmp_name)
{
    $file_name = $key.$_FILES['documents']['name'][$key];
    $file_size =$_FILES['documents']['size'][$key];
    $file_tmp =$_FILES['documents']['tmp_name'][$key];
    $file_type=$_FILES['documents']['type'][$key];  
    move_uploaded_file($file_tmp,"staging/".time().$file_name);
}
}else{
echo "<form enctype='multipart/form-data' action='hola.php' method='POST'>";
 echo "File:<input name='documents[]' multiple='multiple' type='file'/><input type='submit' value='Upload'/>";

 echo "</form>";
}
?>

文件未显示在虚拟主机文件夹中。我应该在哪里创建 /stage/ 文件夹?是否有某种设置权限?大文件怎么样,有什么限制吗?我使用的是正确的/还是它\?

虚拟主机树路径

标签: phpweb-hosting

解决方案


在 foreach 中使用它

// Upload file
$moved = move_uploaded_file($file_tmp,"staging/".time().$file_name);

if( $moved ) {
  echo "Successfully uploaded";         
} else {
  echo "Not uploaded because of error #".$_FILES["documents"]["error"];
}

它将为您提供以下错误代码值 1 到 8 之一:

UPLOAD_ERR_INI_SIZE = 值:1;上传的文件超过了 php.ini 中的 upload_max_filesize 指令。

UPLOAD_ERR_FORM_SIZE = 值:2;上传的文件超出了 HTML 表单中指定的 MAX_FILE_SIZE 指令。

UPLOAD_ERR_PARTIAL = 值:3;上传的文件只是部分上传。

UPLOAD_ERR_NO_FILE = 值:4;没有上传文件。

UPLOAD_ERR_NO_TMP_DIR = 值:6;缺少一个临时文件夹。在 PHP 5.0.3 中引入。

UPLOAD_ERR_CANT_WRITE = 值:7;无法将文件写入磁盘。在 PHP 5.1.0 中引入。

UPLOAD_ERR_EXTENSION = 值:8;PHP 扩展停止了文件上传。PHP 不提供确定是哪个扩展名导致文件上传停止的方法;使用 phpinfo() 检查加载的扩展列表可能会有所帮助。


推荐阅读