2017-08-09 67 views
0

我使用Laravel从邮递员获取请求文件,但似乎Laravel无法识别我发布的文件。以下是我的代码:Laravel:呼叫成员函数存储()null

namespace App\Http\Controllers; 
use App\Product; 
use Illuminate\Http\Request; 

class ProductImageController 
{ 
public function update(Request $request, $id) 
    { 
     $path = $request->file('file')->store('images'); 
     $product = Product::find($id); 
     $product->img_url = $path; 
     return $product->save() ? 
      response(["error_code" => 0, $product]) : 
      response(["error_code" => 1]); 
    } 
} 

Postman request

enter image description here

+0

你能粘贴你的HTML代码吗?我认为您忘记了窗体上的multipart =“form/data”属性,或者拼错了输入名称。 – tete0148

+1

@ tete0148这是邮递员的要求。阅读OP的问题 – Thamilan

+0

确保文件大小不超过您的PHP上传大小限制。另外,请尝试删除“Content-Type”标题。 – patricus

回答

0

添加到您的方法,并检查是否有任何错误,并检查是否表单数据在邮递员选择,小心明确的内容类型标题。更好 - 不要设置它的价值,邮差聪明,足以填补你的头。但是,如果你想设置的内容类型:多重/ form-data的 - 不要忘记boudary领域:

public function update(Request $request, $id) 
{ 
    $this->validate($request, [ 
     'file' => 'required|file' 
    ]); 
... 
0

我想你可以试试这个:

if ($request->hasFile('file')) { 
      $product->img_url = $request->file('file')->store('images'); 
     } 

等详细信息请按照此link

希望这项工作为您服务!