簡體   English   中英

如何使用php laravel將圖像上傳到服務器?

[英]How to upload image to server using php laravel?

我一直在嘗試編寫一個api將圖像上傳到服務器,但都是徒勞的。 我正在使用laravel框架。並嘗試了此示例,但它不起作用。

同樣在測試POSTMAN的api時,我已經在Headers中傳遞了mutlipart / form-data。然后在Body選項卡中選擇了form-data,添加了key = image,將其Text更改為File並添加了圖像。 api,不知道為什么,但是圖像請求為空。

也許我可能在POSTMAN中傳遞了錯誤信息,或者我的代碼中可能存在錯誤信息,請提供幫助。

這是我的api代碼

public function upload(Request $request){

if ($request->hasFile('image')) {
   $image = $request->file('image');
   $name = md5(time().uniqid()).".png";
   $destinationPath = base_path() . '/public/uploads/images/' . $name;

   move_uploaded_file($name, $destinationPath);

   return response()->json(['title'=>"image is uploaded"]);
   }

}

而我的控制器代碼:

Route::post('uploadImage','TestController@upload');

郵遞員請求的屏幕截圖。請告訴我我在標頭或正文中傳遞了什么錯誤。

在此處輸入圖片說明

此外,控制台Missing boundary in multipart/form-data POST data in Unknown on line 0顯示此錯誤Missing boundary in multipart/form-data POST data in Unknown on line 0

您可以使用核心PHP代碼進行文件上傳。 在我的laravel項目中,我使用以下代碼上傳文件。

if(isset($_FILES["image"]["type"]))
{
  $FILES = $_FILES["image"];
  $upload_dir = storage_path('app/public/document/');

  // create folder if not exists
  if (!file_exists($upload_dir)) {
    mkdir($upload_dir, 0777, true);
  }

  //Send error 
  if ($FILES['error'])
  {
    return response()->json(['error'=>'Invalid file']);
  }

  //Change file name
  $target_file = md5(time().uniqid());
  $imageFileType = pathinfo($FILES["name"],PATHINFO_EXTENSION);
  $target_file = $upload_dir.$target_file.'.'.$imageFileType;

  //Upload file
  if (move_uploaded_file($FILES["tmp_name"], $target_file))
  {
    return response()->json(['success' => 'File uploading successful']);
  }
  else
  {
    return response()->json(['error'=>'Invalid file']);
  }
}else{
 return response()->json(['error'=>'Invalid file']);
}

下面是我在函數開頭打印$ _FILES時的屏幕截圖 在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM