2016-10-19 14 views
5

Tôi có API (do Lumen tạo) để lưu hình ảnh hoặc tệp từ phía máy khách.Laravel: Cách gửi hình ảnh hoặc tệp tới API

này là mã API của tôi

if ($request->hasFile('image')) { 
    $image = $request->file('image'); 

    $fileName = $image->getClientOriginalName(); 
    $destinationPath = base_path() . '/public/uploads/images/product/' . $fileName; 
    $image->move($destinationPath, $fileName); 

    $attributes['image'] = $fileName; 
} 

Tôi đã thử các API trong người đưa thư, và tất cả mọi thứ diễn ra tốt đẹp, hình ảnh thành công tải lên.

Phương pháp hay nhất để gửi hình ảnh từ phía máy khách (gọi API) và lưu hình ảnh trong dự án API là gì? vì mã của tôi không hoạt động ..

Đây là mã của tôi khi cố gắng nhận tệp hình ảnh ở phía máy khách và sau đó gọi API.

if ($request->hasFile('image')) { 
    $params['image'] = $request->file('image'); 
} 

$data['results'] = callAPI($method, $uri, $params); 
+0

Bạn có muốn tiết kiệm một hình ảnh? –

+0

có, gửi hình ảnh tới API và lưu nó vào thư mục công cộng API –

+0

một tùy chọn mã hóa tệp trong cơ sở 64 và gửi qua POST. Nhưng bạn cần phải thay đổi mã nguồn 'máy chủ' của mình – cmnardi

Trả lời

1

Vâng, đúng là bạn sẽ không thể làm điều đó mà không gửi nó qua bưu điện từ biểu mẫu.

Cách khác là để gửi các nguồn url từ xa và tải nó trong API như thế này:

if ($request->has('imageUrl')) { 

    $imgUrl = $request->get('imageUrl'); 
    $fileName = array_pop(explode(DIRECTORY_SEPARATOR, $imgUrl)); 
    $image = file_get_contents($imgUrl); 

    $destinationPath = base_path() . '/public/uploads/images/product/' . $fileName; 

    file_put_contents($destinationPath, $image); 
    $attributes['image'] = $fileName; 
} 
Các vấn đề liên quan