php - 警告 : move_uploaded_file() failed to open stream

标签 php file-upload

我正在尝试通过 ftp 上传文件。

这是我的代码

    $jname= "Accounts of Biotechnology Research";
    if (!is_dir('/Trade/upload/ '.$jname)) {

        mkdir('/Trade/upload/ '.$jname);   // line 63
    }
    move_uploaded_file($_FILES["submission_file"]["tmp_name"],    "/Trade/upload/$jname/" . $dup_name );    // line 67

Trade 是 public_html 文件夹中的一个文件夹。

当我上传一个文件时,它会给我一个警告,比如,

Warning: mkdir() [function.mkdir]: No such file or directory in /home/my_username/public_html/Trade/upload.php on line 63

Warning: move_uploaded_file(/Trade/upload/Accounts of Biotechnology Research/76164762-sm.pdf) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/my_username/public_html/Trade/upload.php on line 67

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phphZXp0O' to '/Trade/upload/Accounts of Biotechnology Research/76164762-sm.pdf' in /home/my_username/public_html/Trade/upload.php on line 67 

最佳答案

首先: 你在这里有一个空间 mkdir('/Trade/upload/'.$jname);。假设您应该有 mkdir('/Trade/upload/'.$jname);(与 is_dir 相同)

第二个: 确保您可以写入 Trade/upload 目录。

第三(我想这是真正的问题):

看起来您正在尝试上传到具有完整路径的目录: /home/my_username/public_html/Trade/upload/,但您的代码将尝试创建一个具有完整路径的目录: /交易/上传/。 你需要改变

 if (!is_dir('/Trade/upload/ '.$jname)) {    
     mkdir('/Trade/upload/ '.$jname);   // line 63
 }

 if (!is_dir('upload/'.$jname)) {    
     mkdir('upload/'.$jname);   // line 63 (or maybe there should be Trade/upload, but suppose current working dir will be /home/my_username/public_html/Trade, so only upload/)
 }

另一种选择是强制mkdir递归创建目录:

 mkdir('/Trade/upload/'.$jname, 0755, true);

但在那种情况下,文件将上传到 /Trade/upload/... 而不是 /home/my_username/public_html/Trade/upload/...

关于php - 警告 : move_uploaded_file() failed to open stream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16079220/

相关文章:

php - Laravel Nova 每次编辑都需要上传图片

php - 带有第一方 Cookie 的 Google Analytics

php - 基于数组在mysql表中添加多行

php - 如何使 PHP header 位置重定向使用 PHP 生成的 URL

javascript - 删除前如何在 toastr 中要求确认

自定义 Joomla 组件的文件上传表单

c# - Path.GetExtension 返回 ""

javascript - Busboy 文件事件未触发

java - ADF Faces 多个文件上传

ruby-on-rails - 具有恢复功能的文件上传(最好在 Ruby on Rails 中)