بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

آپلود تصویر بر روی سرور (حل شد)

مدیریت گفتگو
Sara.gh 10 سال پیش
آخرین تغییر: 10 سال پیش

سلام

برای آپلود تصویر بروی سرور باید کدوم از بخش از اموزش هارو مطالعه کنم؟ داخل بوکمارک در این مورد تیتری پیدا نکردم.

نظرات

پاسخ‌ها 2

احمد 10 سال پیش

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

آدرسی مثل:

 http://localhost/upload_image.php?products_imagename=image77.jpg&encoded_string=iVBORw0KGgoAAAANSUhEU.......

حالا داخل فایل php برای ذخیره کردن:

     if($encoded_string !='')
    {
    $decoded_string = base64_decode($encoded_string);
    $path = './image/'.$products_imagename;
    $file = fopen($path, 'wb');
    $is_written = fwrite($file, $decoded_string);
    fclose($file);
        $products_imagepath = '/image/'.$products_imagename;
    }else{
        $products_imagepath = null;
    }
    mysqli_set_charset($conn,"utf8");
    $sql = "INSERT INTO tbl (
   products_imagename,
  products_imagepath
  ) VALUES ('$products_imagename',
  '$products_imagepath')";

نظرات

Sara.gh 10 سال پیش
سپاسگذارم.. اما یکمی نامفهومه برام کدتون
احمد 10 سال پیش
کدوم بخشش؟
احمد 10 سال پیش
کدم قسمتش براتون سخته؟
Sara.gh 10 سال پیش
$products_imagename و خط بعدش 'wb' رو توضیح بردین چی هستن بی زحمت
Sara.gh 10 سال پیش
در قسمت اندروید من یک عکس رو از گالری انتخاب میکنم و به سرور ارسال میکنم.. اما اسم عکس رو نمیدونم.
احمد 10 سال پیش
می تونی اسم تصافی ارسال کنی به php
احمد 10 سال پیش
$products_imagename نام عکس داخلشه که من به فایل php ارسال کردم و ریختمش داخل این متغییر و در اون خط سوالتون من به کمک این متغییر ومسیر ذخیره سازی فایل را ساختم که در چه پوشه ای با چه اسمی ذخیره بشه و اما wb: w یعنی من فایل را برای توشتن باز می کنم و b یعنی میخوام اطلاعات باینری در فایل ذخیره کنم توضیح کامل مقادیرش در لینک
Sara.gh 10 سال پیش
داخل توضیحات گفتید که نوع عکس رو هم باید ارسال کنم؟ عکسی که از گالری ارسال میشه رو هم نمیدونم که از چه نوعی ممکنه باشه. اصلا لازمه که نوع عکس رو هم بفرستم؟ و یک سوال دیگه: برای ارسال عکس به سرور عکس به base64 تبدیل میشه و ارسال میشه، حالا برای خوندنش داخل اندروید لازمه که بازهم تبدیل بشه؟به چه فرمتی؟
Sara.gh 10 سال پیش
الان با این روش عکسم داخل سرور آپلود شد اما با فرمت file.
احمد 10 سال پیش
شب کد مربوط سمت گالری گوشی را هم براتون میزارم که نام عکس را هم بدست بیارین بله نوع عکس برای تبدیل شدن base64 مهم
Sara.gh 10 سال پیش
ممنونم کد قسمت گالری رو نوشتم مشکل اسم عکس هم حل کردم.. الان فقط نمیدونم نوع عکس رو چطور بدست بیارم.
احمد 10 سال پیش

این کدی هست که لازم دارین:

 	public void loadImagefromGallery(View view) {
		Intent galleryIntent = new Intent(Intent.ACTION_PICK,
				android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
		startActivityForResult(galleryIntent, RESULT_LOAD_IMG);
	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		try {
			if (requestCode == RESULT_LOAD_IMG && resultCode == RESULT_OK
					&& null != data) {

				Uri selectedImage = data.getData();
				String[] filePathColumn = { MediaStore.Images.Media.DATA };

				Cursor cursor = getContentResolver().query(selectedImage,
						filePathColumn, null, null, null);
				cursor.moveToFirst();

				int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
				imgPath = cursor.getString(columnIndex);
				cursor.close();
				imgproduct_addproduct.setImageBitmap(BitmapFactory
						.decodeFile(imgPath));
				String fileNameSegments[] = imgPath.split("/");
				fileName = fileNameSegments[fileNameSegments.length - 1];
				String exten = fileName.substring(fileName.length() - 4);

				Random random = new Random();

				View v = null;
				uploadImage(v);
				products_imagename = "image" + random.nextInt(5000) + exten;

			} else {
				encodedString = null;
			}
		} catch (Exception e) {
			encodedString = null;
		}

	}

نظرات

احمد 10 سال پیش
fileName اسم فایله و exten پسوند فایل انتخاب شده هست

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