post کردن فایل همراه با اطلاعات دیگر به سرور در اندروید
-
مطالب مشابه
-
توسط MaHdI-09
سلام.
من میخوام یک ویدئو رو به سرور ارسال کنم.اما هرچی آموزش دیدم جوری نبود که من دوتا داده و خود فیلم رو ارسال کنم به سرور.
ممنون میشم راه حلی پیشنهاد بدید
-
توسط مهندس
سلام دوستان
من میخام با متد پست post تعدادی داده بفرستم ب سرور و میخام ریسپانسی که برام برمیگردونه یک json array باشه نه یک string.
این داده هایی که باید فرستاده باشن باید به صورت json object باشن؟؟
کسی تا حالا کار کرده ک راهنمایی کنه؟؟؟
-
توسط مهندس
سلام دوستان.
یکسری اطلاعات دارم در برنامه ک قراره ب سمت سرور ارسال بشه، از کتابخونه ی volley استفاده میکنم، اطلاعات با موفقیت در دیتابیس phpmyadmin ذخیره میشه، اما موقعی ک میخام select where بگیرم ک چنین رکوردی با فلان ستون و فلان اطلاعاتذخیره شده یا نه؟ برای بعضی از ستونها کوئری جواب داره ولی برای بعضی ستونها میگه null هست در حالیکه اون ستون مقدار داره، و وقتی خودم دستی در دیتابیس بهمون ستون مقدار میدم، کوئری مقدار برمیگردونه.
این مشکلش چیه؟؟؟
فکر نمیکنم مشکل از برنامه نویسی اندروید باشه.
کدهای php رو ضمیمه کردم، لطفا راهنمایی کنید.
<?php if($_SERVER['REQUEST_METHOD']=='POST'){ include "config.php"; $name=$_POST['name']; $code=$_POST['code']; $clas=$_POST['clas']; $day=$_POST['day']; $clock=$_POST['clock']; $college=$_POST['college']; $semester=$_POST['semester']; $year=$_POST['year']; $cycle=$_POST['cycle']; $mobile=$_POST['mobile']; mysqli_query($con,"SET CHARSET UTF8"); $sql="SELECT count(*) FROM tbl_lesson WHERE name_lesson='".$name."' and code_lesson='".$code."' and name_class='".$clas."' AND day='".$day."' AND clock='".$clock."' AND college='".$college."' AND semester='".$semester."' AND year='".$year."' AND cycle='".$cycle."' AND user_mobile='".$mobile."'"; file_put_contents('test.txt',$sql); $result= mysqli_query($con,$sql); $check=mysqli_fetch_array($result); if($check[0]>0){ echo 'This Lesson last Saved In Database'; } else{ $sql="insert into tbl_lesson (name_lesson,code_lesson, name_class, day, clock, college, semester, year,cycle,user_mobile) VALUES (' $name', '$code', '$clas', '$day', ' $clock', '$college', '$semester', ' $year','$cycle','$mobile')"; mysqli_query($con,"SET CHARSET UTF8"); if(mysqli_query($con,$sql)){ echo "Success Save"; } else{ echo "Failed Save"; } } } ?>
-
توسط مهندس
سلام دوستان.
ببخشید من میخام داده هامو بسمت سرور بفرستم و بر اساس شماره موبایل و روز ک خود کاربر در اندروید وارد میکنه، یکسری اطلاعات select بشه و برای کاربر لیست بشه.گیری ک دارم اینه ک ارایه ای ک با جیسون ساخته میشه خالی هست.کدهای php و کدهای کلاس جاوا رو میزارم.
لطفا راهنمایی کنید اشکال کارم کجاست.
<?php include "config.php"; mysqli_query($con,"SET CHARSET UTF8"); $mobile=$_POST['user_mobile']; $day=$_POST['day']; $sql="SELECT `name_lesson`, `name_class`, `day`, `clock`, `college`, `cycle`, `user_mobile` FROM `tbl_lesson` WHERE user_mobile='$mobile' and day='$day'"; $result=$con->query($sql); $array_list=array(); $array=$result->fetch_all(MYSQLI_ASSOC); echo json_encode($array); ?> import android.app.ProgressDialog; import android.content.Context; import com.android.volley.DefaultRetryPolicy; import com.android.volley.Request; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.JsonArrayRequest; import com.android.volley.toolbox.Volley; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.List; import ir.Class.SaveID; import ir.DataModel.GetSetTodayLesson; import ir.DataModel.GetSetUser; import static ir.Server.AuthenticationServer.SH_PRE_REGISTRATION; public class CatshTodayLesson { Context context; ProgressDialog progressDialog; public CatshTodayLesson(Context context){ this.context=context; } public void getpost(final CatshTodayLesson.onpost onpost) { SaveID saveID = new SaveID(context,SH_PRE_REGISTRATION); String keymobile=saveID.getSharedValue(SaveID.MOBILE);//class of sharedprefrences for get user_mobile String day="چهارشنبه"; final String url="http://192.168.56.1/server/show_today_timesheet.php?user_mobile="+""+keymobile+"day="+day; JsonArrayRequest jsonArrayRequest=new JsonArrayRequest(Request.Method.GET, url, null, new Response.Listener<JSONArray>() { @Override public void onResponse(JSONArray response) { List<GetSetTodayLesson> data=new ArrayList<>(); for (int i=0;i<response.length();i++){ GetSetTodayLesson getSetTodayLesson=new GetSetTodayLesson(); try { JSONObject jsonObject=response.getJSONObject(i); getSetTodayLesson.setName_lesson(jsonObject.getString("name_lesson")); getSetTodayLesson.setClock(jsonObject.getString("clock")); getSetTodayLesson.setCollege(jsonObject.getString("college")); getSetTodayLesson.setName_class(jsonObject.getString("name_class")); getSetTodayLesson.setSycle(jsonObject.getString("cycle")); } catch (JSONException e) { e.printStackTrace(); } data.add(getSetTodayLesson); } onpost.onpost(data); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } }); jsonArrayRequest.setRetryPolicy(new DefaultRetryPolicy(10000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); Volley.newRequestQueue(context).add(jsonArrayRequest); } public interface onpost { void onpost(List<GetSetTodayLesson> data); } } -
توسط Majid Ebrahimi
در این آموزش می خواهیم دانلود فایل در دیالوگ باکس با قابلیت لغو دانلود را برای شما آموزش دهیم ابتدا کد برنامه:
import java.io.BufferedInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.net.URLConnection; import android.app.Activity; import android.app.ProgressDialog; import android.content.DialogInterface; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; public class DownloadActivity extends Activity { /** Called when the activity is first created. */ boolean isRun = false; ; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); new DownloadFileFromURL().execute("http://hw14.asset.aparat.com/aparat-video/1d7288ace5ce9cc812f6cf5b99d2b8b62642090-360p__87605.mp4"); isRun = true; } private final class onCancelClick implements DialogInterface.OnClickListener { @Override public void onClick(DialogInterface arg0, int arg1) { isRun = false; } } class DownloadFileFromURL extends AsyncTask { private ProgressDialog pDialog; /** * Before starting background thread * Show Progress Bar Dialog * */ @SuppressWarnings("deprecation") @Override protected void onPreExecute() { super.onPreExecute(); pDialog = new ProgressDialog(DownloadActivity.this); pDialog.setMessage("موسیقی مورد نظر در حال دانلود است..."); pDialog.setIndeterminate(false); pDialog.setMax(100); pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); pDialog.setCancelable(false); pDialog.setButton("لغو", new onCancelClick()); pDialog.show(); } /** * Downloading file in background thread * */ @Override protected String doInBackground(String... f_url) { int count; try { URL url = new URL(f_url[0]); URLConnection conection = url.openConnection(); conection.connect(); // getting file length int lenghtOfFile = conection.getContentLength(); // input stream to read file - with 8k buffer InputStream input = new BufferedInputStream(url.openStream(), 8192); // Output stream to write file File f = new File("sdcard/ff.mp3"); OutputStream output = new FileOutputStream(f); byte data[] = new byte[1024]; long total = 0; while ((count = input.read(data)) != -1) { total += count; // publishing the progress.... // After this onProgressUpdate will be called publishProgress("" + (int) ((total * 100) / lenghtOfFile)); // writing data to file output.write(data, 0, count); if ( !isRun) { f.delete(); break; } } // flushing output output.flush(); // closing streams output.close(); input.close(); } catch (Exception e) { Log.e("Error: ", e.getMessage()); } return null; } @Override protected void onProgressUpdate(String... progress) { pDialog.setProgress(Integer.parseInt(progress[0])); } @SuppressWarnings("deprecation") @Override protected void onPostExecute(String file_url) { pDialog.dismiss(); } } }
همانطور که مشهود است از یک کلاس آسینک تسک استفاده شده برای دانلود فایل و پس از تنظیمات اولیه دیالوگ در متد onPreExecute در متد doInBackground کارهای اصلی انجام می شود. که فایل دانلود و در اس دی کارد نوشته یا ذخیره می شود اما قسمت مهم این کار متغیر isRun است که پس از هربار نوشتن چک می شود که آیا کاربر دانلود را متوقف کرده یا نه که اگر نکرده به دانلود ادامه دهد و اگر دکمه توقف توسط کاربرد زده شده دانلود را متوقف می کند.
اما باید توجه داشته باشبید که پرمیشن های زیر را در فایل منیفست اضافه کنید.
امیدوارم این آموزش راهنمای خوبی برای شما دوستان باشد.
-
-
فایل
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .