PHP文件上传失败移动文件
Posted
技术标签:
【中文标题】PHP文件上传失败移动文件【英文标题】:PHP file upload failed to move file 【发布时间】:2013-12-17 06:51:14 【问题描述】:我自己创建了这个脚本,一旦我得到它来实际上传文件,就会检查安全性,但目前我收到以下错误:
警告:move_uploaded_file(public_html/uploads/rikkles/1/apt&c-application- form-2005.pdf)[function.move-uploaded-file]:无法打开流:没有这样的文件或 /websites/123reg/LinuxPackage22/sf/pa/ys/sfpayslips.info/public_html/login 中的目录 /upload.php 第 16 行
错误:
警告:move_uploaded_file() [function.move-uploaded-file]:无法移动 '/tmp/phpz4zlrR' 到 'public_html/uploads/rikkles/1/apt&c-application-form-2005.pdf' 在 /websites/123reg/LinuxPackage22/sf/pa/ys/sfpayslips.info/public_html/login/upload.php 第 16 行
代码如下:
if($_POST["upload"])
$target_path = 'public_html/uploads/' . strtolower(str_replace(' ','',$_POST["username"])) . '/' . $_POST["month"] . '/' . basename($_FILES['uploadedfile']['name']);
$filename = basename($_FILES['uploadedfile']['name']);
$ext = substr($filename, strrpos($filename, '.') + 1);
if (($ext == "pdf") && ($_FILES["uploadedfile"]["type"] == "application/pdf") && ($_FILES["uploadedfile"]["size"] < 550000))
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path))
echo "<div class='success'>The file " . "<span class='filename'>" . basename( $_FILES['uploadedfile']['name']) . "</span>" . " has been uploaded</div>";
else
echo "<div class='error'>There was an error uploading the file, please try again!</div>";
else
echo "<div class='error'>You can only upload PDF file types</div>";
print $target_path;
【问题讨论】:
您可能缺少public_html
中的前导斜杠。或者目标路径有其他问题
使用$target_path
的绝对路径
您是否尝试过上传不带 & 符号的文件?
【参考方案1】:
谢谢大家,这是一个路径问题,出于安全原因,文件上传到应用程序文件夹之外,所以我使用 $_SERVER["DOCUMENT_ROOT"] 来获取 ABSPATH。
【讨论】:
以上是关于PHP文件上传失败移动文件的主要内容,如果未能解决你的问题,请参考以下文章
解决PHP move_uploaded_file函数移动图片失败