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 文件上传失败

解决PHP move_uploaded_file函数移动图片失败

php上传文件后无法移动到指定目录的解决

PHP在使用move_uploaded_file函数移动文件时一直失败

大文件上传失败的php

php上传大文件失败处理