【问题标题】:laravel won't upload photolaravel 不会上传照片
【发布时间】:2012-12-15 19:13:47
【问题描述】:

我就是不明白,为什么不上传照片。

在我的Input::all() 中有以下内容:

Array
(
    [name] => p17fp1pnaa1gpr5otdg1ba3fd4v.jpg
    [file] => Array
        (
            [name] => tumblr_ltaruq6XCH1qc4lrfo4_400.jpg
            [type] => image/jpeg
            [tmp_name] => C:\xampp\tmp\php9A20.tmp
            [error] => 0
            [size] => 48382
        )

)

我尝试将文件上传到 tmp 目录,但它不会这样做...

$tmp_input = Input::all();
#$tmp_input = $tmp_input['file'];
Input::upload('photo', path('public').'uploads/tmp', $tmp_input['file']['name']);

$tmp_input['file']['name']$tmp_input['name'],也不起作用

是的,uploads/tmp 文件夹存在。我是否遗漏了无法上传的语法中的某些内容?

【问题讨论】:

  • 您对 tmp 文件夹有“写”权限吗?

标签: php upload laravel


【解决方案1】:

为了让其他人知道,我不得不使用 move_uploaded_file() 函数,因为我无法使用 Laravel 的任何函数上传文件。

这就是我所做的

$tmp_input   = Input::all();
$destination = $this->tmp_dir.$tmp_input['name'];
move_uploaded_file($tmp_input['file']['tmp_name'], $destination);

【讨论】:

  • 你应该使用:$uploadfile=Input::file('userfile');$uploadfile->move($path, $fileName);
  • Input::upload() 似乎在所有情况下都适合我。
【解决方案2】:

我认为您调用的文件名不正确,如果您看一下,临时文件夹中的文件在上传后与原始文件的名称不同,它的名称为[tmp_name] => C:\xampp\tmp\php9A20.tmp 因此,您需要从临时文件夹移动到您的 path('public').'uploads/tmp' 的文件是 php9A20.tmp 在此之后您应该使用原始名称重命名该文件,如果您愿意的话,它应该是这种方式。 [name] => tumblr_ltaruq6XCH1qc4lrfo4_400.jpg,试试下面的代码。

Input::upload('photo', path('public').'uploads/tmp', $tmp_input['file']['tmp_name']);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 2016-08-08
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多