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

مشکل سرعت آپلود

125847  9 سال پیش  9 سال پیش
0 0

سلام

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

  private void upload(String s,String ms){

        File f=new File(s);



        // Toast.makeText(getActivity().getApplicationContext(),f+"",Toast.LENGTH_LONG).show();
        int fbyte,cbuffer,buffersize;
        int maxbuffer=1024*1024;
        try{
            FileInputStream fis=new FileInputStream(f);
            URL url=new URL(MainActivity.url+"imgupload.php");
            HttpURLConnection con= (HttpURLConnection) url.openConnection();
            con.setDoInput(true);
            con.setDoOutput(true);
            con.setRequestMethod("POST");
            con.setUseCaches(false);

            con.setRequestProperty("Connection", "keep-Alive");
            con.setRequestProperty("ENCType", "multipart/form-data");
            con.setRequestProperty("Content-Type", "multipart/form-data;boundary=*****");
            con.setRequestProperty("uploaded-file", s);

            DataOutputStream dos=new DataOutputStream(con.getOutputStream());
            dos.writeBytes("--*****\r\nContent-Disposition: form-data; name=\""+ms+"\"; filename=\""+s+"\"\r\n\r\n");
            fbyte=fis.available();
            buffersize=Math.min(fbyte, maxbuffer);
            byte[] buffer=new byte[buffersize];

            cbuffer=fis.read(buffer,0,buffersize);

            while (cbuffer>0){
                dos.write(buffer,0,buffersize);
                fbyte=fis.available();
                buffersize=Math.min(fbyte,maxbuffer);
                cbuffer=fis.read(buffer,0,buffersize);

            }
            dos.writeBytes("\r\n--*****--\r\n");
            if(con.getResponseCode()==200){
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        if(a_1==1&&a_2==1 && a_3==1 && a_4==1){

                            di.dismiss();
                            if (count.equals("")) {
                                Intent i = new Intent(CreateOrg.this, agahi_main.class);

                                startActivity(i);
                                overridePendingTransition(R.anim.anim_in, R.anim.anim_out);
                            } else {


                                OptionDialog2 = new AlertDialog.Builder(CreateOrg.this).create();

                                LayoutInflater factory = LayoutInflater.from(CreateOrg.this);
                                final View f = factory.inflate(R.layout.row_alert4, null);


                                OptionDialog2.setView(f);
                                TextView txt1 = (TextView) f.findViewById(R.id.alert_txt1);
                                TextView txt2 = (TextView) f.findViewById(R.id.alert_txt2);
                                TextView txt3 = (TextView) f.findViewById(R.id.alert_txt3);

                                txt1.setTypeface(MainActivity.K);
                                txt2.setTypeface(MainActivity.K);
                                txt3.setTypeface(MainActivity.K);


                                if (count.equals("5000")) {
                                    txt1.setText("آیا مایل هست آگهی خود را به مدت " + "یک هفته " + " " + "و" + "پرداخت مبلغ " + "5000 هزار تومان " + " " + "ویژه کنید؟");
                                } else if (count.equals("10000")) {
                                    txt1.setText("آیا مایل هست آگهی خود را به مدت " + "یک ماه " + " " + "و" + "پرداخت مبلغ " + "10000 هزار تومان" + " " + "ویژه کنید؟");
                                } else if (count.equals("25000")) {
                                    txt1.setText("آیا مایل هست آگهی خود را به مدت " + "سه ماه" + " " + "و" + "پرداخت مبلغ " + "25000 هزار تومان" + " " + "ویژه کنید؟");
                                }


                                txt2.setOnClickListener(new View.OnClickListener() {
                                    @Override
                                    public void onClick(View view) {

                                        requestPayment(count);

                                        OptionDialog2.dismiss();

                                    }
                                });

                                txt3.setOnClickListener(new View.OnClickListener() {
                                    @Override
                                    public void onClick(View view) {
                                        Intent i = new Intent(CreateOrg.this, agahi_main.class);

                                        startActivity(i);
                                        overridePendingTransition(R.anim.anim_in, R.anim.anim_out);

                                        OptionDialog2.dismiss();

                                    }
                                });


                                OptionDialog2.show();

                            }

                        }
                    }
                });
                fis.close();
                dos.flush();
                dos.close();
            }


        }catch (Exception e){
            Toast.makeText(getApplicationContext(),"error upload file",Toast.LENGTH_LONG).show();

        }

    }
+1 0
کلا خیلی از این کلاس و متدهایی که استفاده کردید دپریکیت شدن مثل HttpURLConnection. از کلاس ها و روش های جدید برای اینکار استفاده کنید. اگه خیلی تغییر نکرد می‌تونید از لایبرری های آماده استفاده کنید. (9 سال پیش)
0 0
مثلا از کدوما؟ (9 سال پیش)
 برای این سوال پاسخی وجود ندارد.

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