【问题标题】:PHP file upload failed to move filePHP文件上传失败移动文件
【发布时间】: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的绝对路径
  • 您是否尝试过上传不带 & 符号的文件?

标签: php file-upload


【解决方案1】:

谢谢大家,这是一个路径问题,出于安全原因,文件上传到应用程序文件夹之外,所以我使用 $_SERVER["DOCUMENT_ROOT"] 来获取 ABSPATH。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 2023-04-02
    • 2011-05-04
    • 2017-01-03
    • 1970-01-01
    • 2023-01-22
    • 2012-04-12
    相关资源
    最近更新 更多