php - 如何使用 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/ 文件夹?是否有某种设置权限?大文件怎么样,有什么限制吗?我使用的是正确的/还是它\?
解决方案
在 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() 检查加载的扩展列表可能会有所帮助。
推荐阅读
- accessibility - 模态窗口的焦点顺序
- r - R - 找到至少有 n 个不同元素的行
- django - 上传文件中包含的标头和边界 django rest 框架
- kubernetes - 将 Kubernetes 用户链接到 Unix 用户
- c# - 在浏览器中打开 URL 并更改应用程序视图 - Android Xamarin
- python - 在 pandas 中使用 null vs empty 的原因
- laravel - Laravel Valet 用 404 Not Found 替换公共站点
- python - 避免 Python Unittest 中的包名冲突
- c# - Microsoft Bot Framework System.ArgumentException:'EncryptedText 格式不正确'
- c# - System.OutOfMemory 异常的 Windows 服务错误