PDA

View Full Version : آپلود عکس



hosseinaryai
سه شنبه 18 آذر 1393, 05:10 صبح
سلام دوستان
چطور می تونم یه عکسیو از توی گالریم بگیرم و توی فضای خاصی از سرورم آپلود کنم ..
مثلن یه ایمیج ویوو دارم توی برنامه ام .. کاربر می تونه بره از توی گالری عکسشو عوض کنه .. حالا می خوام این عکس جدیدی که برای ایمیج ویوو انتخاب کرده رو به سمت سرور آپلودش کنم ..

smemamian
سه شنبه 18 آذر 1393, 18:46 عصر
سلام
پارامتر اول : آدرس تصویر مورد نظر روی Device
پارامنر دوم : آدرس مقصد
پارامتر سوم : Context

public int uploadFile(String sourceFileUri,String upLoadServerUri,final Context con) {


int serverResponseCode = 0;

String fileName = sourceFileUri;

HttpURLConnection conn = null;
DataOutputStream dos = null;
String lineEnd = "\r\n";
String twoHyphens = "--";
String boundary = "*****";
int bytesRead, bytesAvailable, bufferSize;
byte[] buffer;
int maxBufferSize = 1 * 1024 * 1024;
File sourceFile = new File(sourceFileUri);

if (!sourceFile.isFile()) {



return 0;

}
else
{
try {


FileInputStream fileInputStream = new FileInputStream(sourceFile);
URL url = new URL(upLoadServerUri);


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

dos = new DataOutputStream(conn.getOutputStream());

dos.writeBytes(twoHyphens + boundary + lineEnd);
dos.writeBytes("Content-Disposition: form-data; name=\"userphoto\";filename=\""
+ fileName + "\"" + lineEnd);

dos.writeBytes(lineEnd);


bytesAvailable = fileInputStream.available();

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


bytesRead = fileInputStream.read(buffer, 0, bufferSize);

while (bytesRead > 0) {

dos.write(buffer, 0, bufferSize);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
bytesRead = fileInputStream.read(buffer, 0, bufferSize);

}


dos.writeBytes(lineEnd);
dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);

// Responses from the server (code and message)
serverResponseCode = conn.getResponseCode();
String serverResponseMessage = conn.getResponseMessage();

Log.e("uploadFile", "HTTP Response is : "
+ serverResponseMessage + ": " + serverResponseCode);

if(serverResponseCode == 200){



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

} catch (MalformedURLException ex) {



Log.e("Upload file to server", "error: " + ex.getMessage(), ex);
} catch (Exception e) {


Log.e("Upload file to server Exception", "Exception : "
+ e.getMessage(), e);
}

return serverResponseCode;

} // End else block
}

pbm_soy
چهارشنبه 19 آذر 1393, 01:01 صبح
شما که زحمت کشید و جواب دادید ای کاش کامل جواب میدادید
این کد بخودی خود کار نخواهد کرد تا زمانی که شما بروی سرور یک وب سرویس اماده نکنید
برا اینکار هم فقط یک صفحه پی اج پی یا ای اس پی باید بنویسید و در ان داده های ارسالی را از کلاینت دریافت کنید
طبق کدی که اینجا کپی شده شما باید در. صفحه وب موردنظربایدتصویرارسالی از پارامتر پست شده userphoto دریسافت کرده و در انجا ذخیره کنید

pbm_soy
چهارشنبه 19 آذر 1393, 01:03 صبح
برای اطلاعات بیشتربه تاپیک مربوط به نحوه نوشتن وب سرویس مراجعه کنید

hosseinaryai
چهارشنبه 19 آذر 1393, 15:12 عصر
مرسی از همه ی دوستان .. کارم راه افتاد .. :قلب:

asemaneiran
پنج شنبه 22 مهر 1395, 10:52 صبح
میشه یکی لطف کنه کد php رو بذاره:گریه: