G
Galaxy S3 / Tab 10.1
Neues Mitglied
- 0
Hallo zusammen,
ich habe eine Funktion (siehe unten) die eine Datei f an einen Server mit PHP sendet.
Nun gibt es allerdings das Problem mit Umlauten, der Server braucht UTF-8-Kodierung, die Datei ist im Standard-Java-Charset (Windows 1252?).
Was muss ich nun an der Funktion anpassen, damit die Datei umkodiert hochgeladen wird?
Vielen Dank für Eure Hilfe!
ich habe eine Funktion (siehe unten) die eine Datei f an einen Server mit PHP sendet.
Nun gibt es allerdings das Problem mit Umlauten, der Server braucht UTF-8-Kodierung, die Datei ist im Standard-Java-Charset (Windows 1252?).
Was muss ich nun an der Funktion anpassen, damit die Datei umkodiert hochgeladen wird?
Vielen Dank für Eure Hilfe!
Code:
public String uploadFile(File f, String address, String name){
HttpURLConnection connection = null;
DataOutputStream outputStream = null;
String lineEnd = "\r\n";
String twoHyphens = "--";
String boundary = "*****";
int bytesRead, bytesAvailable, bufferSize;
byte[] buffer;
int maxBufferSize = 1*1024*1024;
try{
FileInputStream fileInputStream = new FileInputStream(f);
URL url = new URL(address);
connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setUseCaches(false);
connection.setRequestMethod("POST");
connection.setRequestProperty("Connection", "Keep-Alive");
connection.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary);
outputStream = new DataOutputStream(connection.getOutputStream());
outputStream.writeBytes(twoHyphens + boundary + lineEnd);
outputStream.writeBytes("Content-Disposition: form-data; name=\""+name+"\";filename=\"" + name +"\"" + lineEnd);
outputStream.writeBytes("Content-Type: text/plain;"+lineEnd);
outputStream.writeBytes(lineEnd);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
buffer = new byte[bufferSize];
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
while (bytesRead > 0){
outputStream.write(buffer, 0, bufferSize);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
}
outputStream.writeBytes(lineEnd);
outputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);
fileInputStream.close();
outputStream.flush();
outputStream.close();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder stb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null){
stb.append(line + "\n");
}
return stb.toString();
}
catch (Exception ex){
return "";
}
}