通过 axios 将图像从本机应用程序上传到 symfony 后端
upload image from react native app to symfony backend via axios
我想通过 axios 将图像从 React Native 应用程序上传到 symfony 的后端。
前端代码如下:
const [pickedImage, setPickedImage] = useState("");
const submitPhoto = async () => {
try {
const result = await ImagePicker.launchImageLibraryAsync();
setPickedImage(result);
let formData = new FormData();
formData.append("uploaded_image", {
uri:
Platform.OS === "android"
? pickedImage.uri
: pickedImage.uri.replace("file://", ""),
name: "tata.jpeg",
type: "image/jpeg",
});
const response = await axios({
method: "post",
url: "http://192.168.1.3:8000/upload",
data: formData,
});
} catch (error) {
console.log(error)
}
};
这里是 Symfony 后端的代码:
public function postImage(Request $request)
{
//... some code
$content = $request->files->get("uploaded_image");
// ... handle the image in content
}
如我所见,$content 为 NULL。为了确认这一点,我附上了 symfony 分析器的屏幕截图。
我试图在 axios 调用中添加“Content-type”:“multipart/form-data”,但我得到:“Missing boundary in multipart/form-data POST data”
有谁知道我如何正确地将图像从 React Native 上传到 Symfony?
提前致谢。
编辑 1:
使用 POSTMAN 时,后端的工作方式如下面两张图片所示:
POST人工请求:
分析器 SYMFONY:
我认为你的 back-end 端有一个 base64,然后你必须用类似的东西转换它:
$data = base64_decode($content);
file_put_contents($filePath, $data);
正如我所说,当我使用 Axios 时 header (multipart/form-data),我收到一条消息错误:
Missing boundary in multipart/form-data POST data
.
我试过使用 fetch,现在可以用了!我不知道为什么:
let response = await fetch(
"http://192.168.1.3:8000/upload",
{
method: "post",
body: formData,
headers : {
'Content-Type' : 'multipart/form-data;'
}
}
)
这很奇怪,但我不知道为什么现在可以了。
我想通过 axios 将图像从 React Native 应用程序上传到 symfony 的后端。
前端代码如下:
const [pickedImage, setPickedImage] = useState("");
const submitPhoto = async () => {
try {
const result = await ImagePicker.launchImageLibraryAsync();
setPickedImage(result);
let formData = new FormData();
formData.append("uploaded_image", {
uri:
Platform.OS === "android"
? pickedImage.uri
: pickedImage.uri.replace("file://", ""),
name: "tata.jpeg",
type: "image/jpeg",
});
const response = await axios({
method: "post",
url: "http://192.168.1.3:8000/upload",
data: formData,
});
} catch (error) {
console.log(error)
}
};
这里是 Symfony 后端的代码:
public function postImage(Request $request)
{
//... some code
$content = $request->files->get("uploaded_image");
// ... handle the image in content
}
如我所见,$content 为 NULL。为了确认这一点,我附上了 symfony 分析器的屏幕截图。
我试图在 axios 调用中添加“Content-type”:“multipart/form-data”,但我得到:“Missing boundary in multipart/form-data POST data”
有谁知道我如何正确地将图像从 React Native 上传到 Symfony?
提前致谢。
编辑 1: 使用 POSTMAN 时,后端的工作方式如下面两张图片所示:
POST人工请求:
分析器 SYMFONY:
我认为你的 back-end 端有一个 base64,然后你必须用类似的东西转换它:
$data = base64_decode($content);
file_put_contents($filePath, $data);
正如我所说,当我使用 Axios 时 header (multipart/form-data),我收到一条消息错误:
Missing boundary in multipart/form-data POST data
.
我试过使用 fetch,现在可以用了!我不知道为什么:
let response = await fetch(
"http://192.168.1.3:8000/upload",
{
method: "post",
body: formData,
headers : {
'Content-Type' : 'multipart/form-data;'
}
}
)
这很奇怪,但我不知道为什么现在可以了。