我已经尝试了一段时间但没有成功
后端
public function createInspection(Request $request) {
$path = Storage::disk('public')->putFile('bin_images', new File($request->file('image')));
return $path;
}
客户
data.append("image", {
uri: this.state.images[0].path,
type: this.state.images[0].mime,
size: this.state.images[0].size,
name: filename
});
this.props.sendInspection(data)
服务(缩短)
const res = await axios.post(url, data, {
headers: {
Authorization: `Bearer ${token}`,
Accept: "application/json",
"Content-Type": "multipart/form-data"
}
});
我不确定它是否与路径未被识别(ios图像路径)有关,例如路径:qazxsw poi
我收到这个错误
/private/var/mobile/Containers/Data/Application/B6FEB0FD-F9C8-4088-B15F-99D27A818C76/tmp/react-native-image-crop-picker/7BD81594-30E0-4E00-919C-4F353BBDE46F.jpg
问题似乎与你的后端,检查message: "The file "" does not exist", exception: "Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException", file: "/Users/ysr/tza-project/vendor/symfony/http-foundation/File/File.php", line: 37, file: "/Users/ysr/tza-project/vendor/symfony/http-foundation/File/MimeType/MimeTypeGuesser.php", line: 116
。
你应该做这样的事情:
documentation
如果你想使用public function update(Request $request)
{
$path = $request->file('image')->store('images');
return $path;
}
,那么可以使用:
putFile
如果需要更改磁盘,则:
$path = Storage::putFile('images', $request->file('image'));
我不知道反应很好,但似乎你只传递图像属性,但不传递图像文件或图像数据的字节数。
尝试更改代码:
$path = Storage::disk('public')->putFile('images', $request->file('image'));
对于这段代码:
data.append("image", {
uri: this.state.images[0].path,
type: this.state.images[0].mime,
size: this.state.images[0].size,
name: filename
});
或者也尝试将data.append("image", {
file: this.state.images[0],
uri: this.state.images[0].path,
type: this.state.images[0].mime,
size: this.state.images[0].size,
name: filename
});
改为Content-Type
如果您的图片是base64,那么您需要在API中进行一些更改,如下所示:
'multipart/form-data; boundary=${data._boundary}'