无法上传图片(React native,Laravel)

问题描述 投票:0回答:2

我已经尝试了一段时间但没有成功

后端

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

ios laravel react-native axios
2个回答
0
投票

问题似乎与你的后端,检查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'));

0
投票

我不知道反应很好,但似乎你只传递图像属性,但不传递图像文件或图像数据的字节数。

尝试更改代码:

$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}'
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.