我使用multipart获得500服务器错误。从iOS端上传图像时,相同的服务器代码正在运行。以下是我的多部分图像上传代码.Server Side正在使用PHP。
public PostFile(String requestURL)
throws IOException {
// creates a unique boundary based on time stamp
URL url = new URL(requestURL);
httpConn = (HttpURLConnection) url.openConnection();
httpConn.setUseCaches(false);
httpConn.setDoOutput(true); // indicates POST method
httpConn.setDoInput(true);
httpConn.setRequestMethod("POST");
httpConn.setRequestProperty("Connection", "Keep-Alive");
httpConn.setRequestProperty("Cache-Control", "no-cache");
httpConn.setRequestProperty(
"Content-Type", "multipart/form-data;boundary=" + this.boundary);
request = new DataOutputStream(httpConn.getOutputStream());
}
private void saveFile() {
try {
PostFile postFile = new PostFile(URL);
//postFile.addFormField();
postFile.addFormField("userId", "25");
postFile.addFormField("accessToken", "h7lCesyM3XKjmjvjrdojzypUNPqA9MsB8PQIzZyWkYHtV43XcxPubUJ3EV8L");
// contact.accumulate("files",imgData);
postFile.addFormField("area", "dfs");
postFile.addFilePart("test.jpeg", getFileFromBitmap(uri));
postFile.finish();
} catch (IOException e) {
e.printStackTrace();
}
}
public void addFilePart(String fieldName, File uploadFile)
throws IOException {
String fileName = uploadFile.getName();
request.writeBytes(this.twoHyphens + this.boundary + this.crlf);
request.writeBytes("Content-Disposition: form-data; name=\"" +
fieldName + "\";filename=\"" +
fileName + "\"" + this.crlf);
request.writeBytes("Content-Type: image/jpeg;" + this.crlf);
request.writeBytes(this.crlf);
// byte[] bytes = Files.readAllBytes(uploadFile.toPath());
request.write(getBytesFromFile(uploadFile));
}