Fixes #3926, (Upload fails immediately. App freshly reset, fast Internet) (#3928)

* Fixes #3926
* Encode media file name

* Revert "Fixes #3926"

This reverts commit b208b3d7fd.

* Encode fileName to support unicode characters in MultiPartUpload
Refer https://stackoverflow.com/questions/58869988/unexpected-char-0x662-at-42-in-content-disposition-value-form-data-name-userf
This commit is contained in:
Ashish 2020-09-16 19:04:46 +05:30 committed by GitHub
parent e2ba80c342
commit f496b9dfd2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -3,6 +3,8 @@ package fr.free.nrw.commons.upload;
import android.content.Context;
import android.net.Uri;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import org.wikipedia.csrf.CsrfTokenClient;
import java.io.File;
@ -41,7 +43,15 @@ public class UploadClient {
(bytesWritten, contentLength) -> notificationUpdater
.onProgress(bytesWritten, contentLength));
MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", filename, countingRequestBody);
MultipartBody.Part filePart;
try {
filePart = MultipartBody.Part
.createFormData("file", URLEncoder.encode(filename, "utf-8"), countingRequestBody);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
filePart = MultipartBody.Part
.createFormData("file", filename, countingRequestBody);
}
RequestBody fileNameRequestBody = RequestBody.create(okhttp3.MultipartBody.FORM, filename);
RequestBody tokenRequestBody;
try {