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

آپلود فایل و عکس به سرور به همراه کد php

MTA  10 سال پیش  10 سال پیش
+3 0

سلام دوستان گرامی

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

فقط سوالی که داشتم اینه که در مورد کد یه مقدار برام توضیح بدین که چطوری کار می کنه و اینکه من می خوام با اسمی که من میخوام در سرور ذخیره بشه . ولی با کد زیر عکس با اسمی که داره تو سرور آپلود میشه

ممنون

 public class UploadToServer {

private static Dialog dialog;


public static void uploadFile(String imagePath, String upurl) {

String fileName = imagePath;
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(imagePath);

if ( !sourceFile.isFile()) {

if (dialog != null && (dialog.isShowing())) {
dialog.dismiss();
}

Log.e("uploadFile", "Source File not exist :" + imagePath);

}
else
{
try {

// open a URL connection to the Servlet
FileInputStream fileInputStream = new FileInputStream(sourceFile);
URL url = new URL(upurl);

// Open a HTTP connection to the URL
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("uploaded_file", fileName);

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

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

dos.writeBytes(lineEnd);

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

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) {

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

}

// send multipart form data necesssary after file data...
dos.writeBytes(lineEnd);
dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);

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

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

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

}
catch (MalformedURLException ex) {

if (dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
ex.printStackTrace();

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

if (dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
e.printStackTrace();

}

if (dialog != null && dialog.isShowing()) {
dialog.dismiss();

}

} // End else block
}

کد بالا که از شما یه آدرس عکس میگیره و یه آدرس سرور و فایل پی اچ پی

کد سمت سرور

  $file_path ="images/";
  $file_path = $file_path . basename( $_FILES['uploaded_file']['name']);
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)){ echo "success";}else{ echo "fail";}

که فایل رو میگیره و در پوشه images ذخیره میکنه پس قبل از اجرا این پوشه رو سمت سرور ایجاد کنید.

0 0
اگه تو سایت های ایرانی کمی جستجو کنی ، یک آموزش سی دقیقه ای پیدا می کنی که همین کد ها رو برای آپلود فایل آموزش میده با توصیحات کامل ، تو انجمن هم یکی از دوستان همین کد ها رو با توضیحات مستند سازی کردند ، کمی جستجو کنید پیدا می کنید. (10 سال پیش)
0 0
کمی که چه عرض کنم کلی جستجو کردم ولی چیزی پیدا نکردم احتمالا کلمات کلیدی جستجو فرق می کرده شما که جستجو کردین لینکش رو کاش برام میزاشتین (10 سال پیش)
+2 0
کد سمت اندروید فکر نمیکنم نیاز به توضیح داشته باشه خیلی واضح هست کانکشن برقرار شده بعد با Stream به سرور فرستاده تصویر رو .... در سمت سرور هم فایل توصیر آرایه ی FILE دریافت شده و با فانکشن move_uploaded_file به آدرسی که براش مشخص شده $file_path فرستاده شده ، برای اینکه بتونید اسم تصویر رو تغییر بدید کافیه خط دوم که file_path مقدار دهی شده یه اسم دیگه بزارید درحال حاضر اسم خود فایل براش تعیین شده شما میتونید پسوند فایل رو مشخص کنید بعد یک اسم رندم مثلا با md5 بسازید و به پسوند بچسبونید و در متغیر file_path بریزید (10 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
علی  10 سال پیش
0 0

دوستان سوالی که من دارم اینه که برای یه پروژه تجاری حالا نه چندان کوچک ( و حالا هر پروژه ای که مهم باشه ) این تابع کفایت میکنه ؟ آخه من خوندم که باید از asyncTask استفاده کرد. ؟

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


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