我有一个本机应用程序,该应用程序连接到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:同一应用程序中有另一个端点连接到相同的后端,使用相同的技术进行上传非常正常