我试图从react native应用程序上传一个映像到java spring boot服务器,但我无法使其工作。
userimage FormData {_parts: Array(1)}_parts: Array(1)0: Array(2)0: "photo"1: name: "file_photo"uri: "content://com.google.android.apps.photos.contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F47/ORIGINAL/NONE/226557028"__proto__: Objectlength: 2__proto__: Array(0)length: 1__proto__: Array(0)__proto__: Object
路径为[]的上下文中servlet[dispatcherServlet]的servlet.service()引发异常[请求处理失败;嵌套异常为org.springframework.web.multipart.multipartException:解析多部分servlet请求失败;嵌套异常为java.io.ioException:org.apache.tomcat.util.http.FileUpload.FileUploadException:请求被拒绝,因为找不到多部分边界]有根本原因
org.apache.tomcat.util.http.FileUpload.FileUploadException:请求被拒绝,因为找不到多部分边界
Spring boot controller:
@PostMapping(value = "/signup", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<?> signupUser(@RequestParam("photo") MultipartFile photo) {
...
}
React native code:
openImagePicker = () => {
ImagePicker.showImagePicker(this.options, async response => {
this.setState({originUri: response.uri})
const file = new FormData();
file.append('photo', {
uri: this.state.originUri,
name: 'file_photo'
});
console.log('photo before resize: ', file)
//here i call the register function(file)
}
function register(userImage) {
console.log('photo from register api: ', file)
return axios({ method: 'post',
baseURL: constants.BASE_URL,
url: '/api/auth/signup',
headers: {
'Content-Type': 'multipart/form-data'
},
data: userImage,
})
.then(res => {
return res.data
} )
.catch( error => {
console.log('error request api: ', error)
});
}
我已经设法解决了:
本机反应:
--来自图像上载组件
openImagePicker = () => {
ImagePicker.showImagePicker(this.options, async response => {
this.setState({originUri: response.uri})
let timestamp = +new Date;
let fileName = timestamp + '_' + response.fileName;
if (response.didCancel) {
console.log('User cancelled image picker')
return
} else if (response.error) {
console.log('ImagePicker Error: ', response.error)
return
} else if (response.customButton) {
console.log('User tapped custom button: ', response.customButton)
return
} else {
const source = { uri: response.uri };
this.setState({
avatarSource: source,
});
}
let { height, width, quality, format, avatarSource } = this.state
// Resize and post the thumb
const resizedImageUri = await ImageResizer.createResizedImage(
this.state.originUri,
this.state.height,
this.state.width,
this.state.format,
this.state.quality
).then(({uri}) => {
let imageProperties = {
uri: uri,
name: fileName,
type: 'image/png',
}
this.props.onUpload(imageProperties);
})
})
}
--API调用注册
export function register(name, username, email, password, imageProperties) {
let formDataPayload = new FormData();
//IMPORTANT !!!!! this picture element form needs 3 parameters !!!!! : URL, NAME and TYPE
formDataPayload.append('photo', {
uri: imageProperties.uri,
name: imageProperties.name,
type: 'image/png',
});
formDataPayload.append('name', name);
formDataPayload.append('username', username);
formDataPayload.append('email', email);
formDataPayload.append('password', password);
return request({method: 'post',
url: '/api/auth/signup/',
headers: {
'Content-Type': 'multipart/form-data'
},
data: formDataPayload
})
}
JAVA SPRING引导:
@PostMapping(value = "/api/auth/signup/")
public ResponseEntity<?> signupUser(HttpServletRequest request,
@RequestParam("photo") MultipartFile photo,
@RequestParam("name") String name,
@RequestParam("username") String username,
@RequestParam("email") String email,
@RequestParam("password") String password,
) throws IOException {
我已经成功地用Quarkus/Graal构建了一个本机映像,我可以在终端中运行它(还没有容器)。但是,它会因“分段错误(堆芯转储)”消息而崩溃。如何获得有关错误的更多信息?是否有标志要传递给本机可执行文件或在构建映像时传递? 我使用的是GraalVM版本20.2.0(Java版本11.0.8) 任何帮助都是非常感激的。 谢谢
我创建了一个使用Firebase存储运行的应用。这个想法是,您从照片库中选择一张图片,然后将其上传到Firebase存储。与Firebase的连接似乎工作正常,我可以选择图像。当我按下提交按钮将其上传到Firebase时,问题就出现了。 当我点击它一次,什么也没发生。 当我点击它几次时,我得到一条消息“发生未知错误,请检查HTTP结果代码和内部异常”。。 我该怎么做,寻求建议。。 从舱单中: 从活
我试图使用spring boot和GraalVM本机映像创建一个示例应用程序,但是,当我为Springdoc添加依赖项时,由于以下原因,生成的可执行文件不再工作: 如有任何提示,不胜感激。
当我建立一个本土形象时,我面临着一个反思的问题 通用域名格式。神谕svm。主持。代替DeletedElementException:不支持的java字段。朗,同学们。newInstanceCallerCache是可访问的:此元素的声明类已被替换,但替换类中不存在此元素 我该怎么修?我的环境GraalVM 20和Zulu OpenJdk11 我的pom
我尝试从数组中随机加载gif。我尝试了几种方法,但都没有奏效。我要么收到错误消息,要么图像就不会出现。 版本 1(结果:图像未显示): 版本2(结果:“无效调用”) 版本3(结果:无法加载图像): 有什么想法吗?
当将图像上传到控制器(所有其他服务都可以正常工作)时,不存在所需的请求部分文件。我已经通过成功上传到这个Spring指南排除了邮递员。不确定缺了什么。 Spring可能版本:Edgware。构建-快照 控制器: 来自POM的依赖关系