Reputation: 1
Large file upload failed
When receiving 130KB, it is possible, but there is an error if it is greater than 130Kb
server: org.springframework.boot:spring-boot-starter-rsocket org.springframework.boot:spring-boot-starter-webflux
client: "rsocket-composite-metadata": "^1.0.0-alpha.3", "rsocket-flowable": "^0.0.29-alpha.0", "rsocket-messaging": "^1.0.0-alpha.3", "rsocket-websocket-client": "^1.0.0-alpha.3",
Kotlin
@MessageMapping("/upload")
fun upload(@Payload fileData: ByteArray?): Mono<String> {
println("========= OK")
println("========= OK "+ fileData!!.size)
val uploadFile = File("/Users/Downloads/uploaded_file.png")
return Mono.just("ok").doOnSuccess {
try {
FileOutputStream(uploadFile).use { fos ->
fos.write(fileData!!)
}
} catch (e: IOException) {
e.printStackTrace()
}
}
}
I use srocket-js to upload files
upload(file) {
let route = encodeRoute("/upload");
let compositeMetaData = encodeCompositeMetadata([
[WellKnownMimeType.MESSAGE_RSOCKET_ROUTING, route]
]);
const reader = new FileReader();
reader.onload = (event) => {
let result = event.target.result as ArrayBuffer;
console.log(result)
this.socket.requestResponse({data: Buffer.from(result), metadata: compositeMetaData}, {
onComplete(): void {
}, onError(error: Error): void {
console.error("Error", error);
}, onExtension(extendedType: number, content: Buffer | null | undefined, canBeIgnored: boolean): void {
}, onNext(payload: Payload, isComplete: boolean): void {
console.log("OK", isComplete);
console.log("payload", payload.data);
}
})
}
reader.readAsArrayBuffer(file);
}
Please provide an example program to tell me what to do
Upvotes: 0
Views: 45