2012-12-31 73 views
1

我只是不明白,为什么不上传照片。laravel不会上传照片

有我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文件夹存在。我是否从语法上错过了一些不会执行上传的内容?

+0

你必须tmp文件夹“写入”权限? – Laurence

+0

@TheShiftExchange yes – Alex

回答

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); 
+0

您应该使用: '$ uploadfile = Input :: file('userfile');' '$ uploadfile-> move($ path,$ fileName);' –

+0

'Input :: upload()'似乎在所有情况下都适合我。 –

0

我想您所呼叫一旦它上传具有不同的名称比原始文件,如果你看看这就是所谓[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']);