【问题标题】:PHP: "move_uploaded_file()" failing without any helpful infoPHP:“move_uploaded_file()”在没有任何有用信息的情况下失败
【发布时间】:2012-08-23 22:41:08
【问题描述】:

我有一个上传的文件,当试图将它保存到文件系统时,它只是失败了。
我的var_export($_FILES['bom_file']) 产生

array (
  'name' => '_bomUpload.tester.csv',
  'type' => 'application/octet-stream',
  'tmp_name' => 'C:\\wamp\\tmp\\php837A.tmp',
  'error' => 0,
  'size' => 265,
)

这是我的move_uploaded_file() 尝试:(我尝试了几个差异文件路径)

$file_path = 'C:/wamp/NetBeansProjects/BomProject/application/uploads/boms/testfile.csv';  // For Testing ---->
$testVar = move_uploaded_file($_FILES['bom_file']['name'], $file_path);
echo ($testVar)? 'The file has been uploaded': 'There was an error uploading the file';
echo '<pre>UPLOAD?: ', var_export($testVar), '</pre>';  // For Testing ---->

我总是收到错误消息,$testVar 是 FALSE。

我错过了什么??

【问题讨论】:

  • 确保运行 Web 服务器的用户对目标位置具有写入权限。确保该文件夹在“属性”中不是“只读”。
  • @Dutchie432:“你的网络服务器是windows吗?Unix?” 'tmp_name' =&gt; 'C:\\wamp\\tmp\\php837A.tmp',o_O
  • 那里没看到。 [耸肩]。
  • 试试$testVar = move_uploaded_file($_FILES['bom_file']['tmp_name'], $file_path); - 该文件应该仍然在 tmp_name 中
  • 是的 .. 我可能 应该 明确提到我在 WAMP 服务器上,但你想通了 ;) .. @erni 完美!做到了!

标签: php file-upload


【解决方案1】:

改变

$testVar = move_uploaded_file($_FILES['bom_file']['name'], $file_path);

$testVar = move_uploaded_file($_FILES['bom_file']['tmp_name'], $file_path);

name 只是文件的“名称”。实际上传的文件引用在tmp_name 数组键中

【讨论】:

  • 效果很好……@ernie 也几乎在同一时间发布了这个……效果很好……谢谢!
  • 嗯... 几乎!! 根据那个小代码块,一切正常,但我遇到了致命错误。我有一个很大的'ol堆栈跟踪要排序,但肉和土豆是“未捕获的异常'异常',无法打开 C:\wamp\tmp\php9F9C.tmp 进行读取,文件不存在." ... wtf ?? :)
  • 经过大量的挠头后,我只使用了rename($_FILES['foo']['tmp_name'], $newPathAndName)...以防万一它可以帮助其他人。
【解决方案2】:

试试$testVar = move_uploaded_file($_FILES['bom_file']['tmp_name'], $file_path); - 文件应该仍然在 tmp_name 中

【讨论】:

    猜你喜欢
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多