آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

آپلود فایل - متن فارسی مشکل دار می شه

وحید  8 سال پیش  8 سال پیش
0 0

سلام دوستان من از روشی که تو همین فروم بود آپلود رو نوشتم و درست کار میکنه، هم فایل ارسال می شه و هم پارامتر های همراهش.

اما مشکلی که هست اینه که متن های فارسی درست ارسال نمی شن. حتی اسم فایل اگر فارسی باشه درست ارسال نمی شه و حروف عجق وجق ارسال می کنه.
کجا باید تگی چیزی اضافه کنم؟

 
final Thread thread = new Thread(new Runnable() {
@Override
public void run() {
String lineEnd = "\r\n"; // .getBytes("UTF-8")
String twoHyphens = "--";
String boundary = "*****";

int bytesRead, bytesAvailable, bufferSize;
byte[] buffer;
int maxBufferSize = /*1 **/ 1024 * 1024;

try {
URL url = new URL("url_adress");
FileInputStream fileInputStream = new FileInputStream(new File(filePath));

HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true); // Allow Inputs
connection.setDoOutput(true); // Allow Outputs
connection.setUseCaches(false); // Don't use a Cached Copy
connection.setRequestMethod("POST");
connection.setRequestProperty("Connection", "Keep-Alive");
connection.setRequestProperty("ENCTYPE", "multipart/form-data");
connection.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
connection.setRequestProperty("file_uploading", filePath);

DataOutputStream dataOutputStream = new DataOutputStream(connection.getOutputStream());

dataOutputStream.writeBytes(twoHyphens + boundary + lineEnd);
dataOutputStream.writeBytes("Content-Disposition: form-data; name=\"file_uploading\";filename=\"" + filePath + "\"" + lineEnd);
dataOutputStream.writeBytes(lineEnd);

// create a buffer of maximum size
bytesAvailable = fileInputStream.available();

// maxBufferSize = 1024;
bufferSize = Math.min(bytesAvailable, maxBufferSize);
buffer = new byte[bufferSize];

// read file and write it into form...
bytesRead = fileInputStream.read(buffer, 0, bufferSize);

while (bytesRead > 0) {
dataOutputStream.write(buffer, 0, bufferSize);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
}
dataOutputStream.writeBytes(lineEnd);
dataOutputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);

// Responses from the server (code and message)
int serverResponseCode = connection.getResponseCode();
String serverResponseMessage = connection.getResponseMessage();
G.myLog("Res Code: " + serverResponseCode);
G.myLog("Res Message: " + serverResponseMessage);
if (serverResponseCode == 200 && listener != null) {
listener.onComplateListener();
}

//close the streams //
fileInputStream.close();
dataOutputStream.flush();
dataOutputStream.close();

} catch (Exception e) {
G.myLog("Uploads error: " + e);
}
}
});
thread.start();
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .