将文件从react-native应用程序上传到laravel后端会导致错误网络

时间:2020-09-18 22:55:56

标签: javascript php laravel react-native

我有一个本机应用程序,该应用程序连接到Laravel后端。

我想将文件从移动应用程序上传到服务器。

这是我的反应本机代码:

import ImagePicker from 'react-native-image-crop-picker';
import axios from 'axios';

// A button triggers the following code
ImagePicker.openPicker({})
    .then(image => {
                let path = image.path
                let filename = path.substring(path.lastIndexOf('/') + 1, path.length)
                const data = new FormData();
                data.append('img', {
                    uri: image.path,
                    type: image.mime,
                    name: filename
                });

const headers = { 
'Content-Type': 'multipart/form-data',
'Authorisation' : token
};
// HERE GOES THE ERROR !
axios.post(MY_LARAVEL_ENDPOINT, {data}, { headers })

我的Laravel端点(在服务器上运行)是这样的:

public funtion upload(Request $request) {
  $user = Auth::user();
  
  if ($request->hasFile('img')) {
     
     // DO STUFF
  }

  // DOO OTHER STUFF

  return reponse()->json(['message', 'success']);
}

这将产生一个Network Error,响应为Stream Closed

当我使用具有完全相同图片的Postman进行请求时,相同的精确代码可以完美地工作。

当我尝试将console.log(data)传递给axios之前,它给了我这个对象

{_parts: [
  ['img', {uri: "file://data/....myImg.png", type:"image/png", name:"myImg.png"}]
]
}

问题出在哪里?

PS:同一应用程序中有另一个端点连接到相同的后端,使用相同的技术进行上传非常正常

0 个答案:

没有答案