Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中使用多部分格式json发送带有其他字符串的图像_Android_Eclipse_Image Uploading - Fatal编程技术网

在android中使用多部分格式json发送带有其他字符串的图像

在android中使用多部分格式json发送带有其他字符串的图像,android,eclipse,image-uploading,Android,Eclipse,Image Uploading,我有这样的代码,我想上传图像和我的电话号码在服务器上。我有这样的代码 protected void upload(){ Intent hasil = getIntent(); path = hasil.getStringExtra("pathimage"); mPhoneNumber = hasil.getStringExtra("phone"); String upLoadServerUri = Constants.u

我有这样的代码,我想上传图像和我的电话号码在服务器上。我有这样的代码

protected void upload(){

         Intent hasil = getIntent();
         path = hasil.getStringExtra("pathimage");
         mPhoneNumber = hasil.getStringExtra("phone");

         String upLoadServerUri = Constants.url_create_product;
         String fileName = path;
         int serverResponseCode;

         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(path); 
         if (!sourceFile.isFile()) {
          Log.e("uploadFile", "Source File Does not exist");
         // return 0;
         }

            try { // open a URL connection to the Servlet
              FileInputStream fileInputStream = new FileInputStream(sourceFile);
              URL url = new URL(upLoadServerUri);
              conn = (HttpURLConnection) url.openConnection(); // Open a HTTP  connection to  the URL
              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("prod_image", fileName); 
              dos = new DataOutputStream(conn.getOutputStream());

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

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

              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 <span id="IL_AD8" class="IL_AD">file data</span>...
              dos.writeBytes(lineEnd);
              dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);

              //kirim phone
              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("phone", mPhoneNumber); 
              dos = new DataOutputStream(conn.getOutputStream());

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

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

              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 <span id="IL_AD8" class="IL_AD">file data</span>...
              dos.writeBytes(lineEnd);
              dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);

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

              Log.i("uploadFile", "HTTP Response is : " + serverResponseMessage + ": " + serverResponseCode);
              if(serverResponseCode == 200){
                  runOnUiThread(new Runnable() {
                       public void run() {
                        //   tv.setText("<span id="IL_AD6" class="IL_AD">File Upload</span> Completed.");
                           Toast.makeText(Activity3.this, "File Upload Complete.", Toast.LENGTH_SHORT).show();
                       }
                   });                
              }    

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

         } catch (MalformedURLException ex) {  
             pDialog.dismiss();  
             ex.printStackTrace();
             Toast.makeText(Activity3.this, "MalformedURLException", Toast.LENGTH_SHORT).show();
             Log.e("Upload file to server", "error: " + ex.getMessage(), ex);  
         } catch (Exception e) {
             pDialog.dismiss();  
             e.printStackTrace();
             Toast.makeText(Activity3.this, "Exception : " + e.getMessage(), Toast.LENGTH_SHORT).show();
             Log.e("Upload file to server Exception", "Exception : " + e.getMessage(), e);  
         }
         pDialog.dismiss();       
       //  return serverResponseCode;  
        } 
}
受保护的无效上载(){
Intent hasil=getIntent();
path=hasil.getStringExtra(“路径图像”);
mPhoneNumber=hasil.getStringExtra(“电话”);
字符串upLoadServerUri=Constants.url\u create\u product;
字符串文件名=路径;
int服务器响应代码;
HttpURLConnection conn=null;
DataOutputStream dos=null;
字符串lineEnd=“\r\n”;
字符串双连字符=“--”;
字符串边界=“*******”;
int字节读取,字节可用,缓冲区大小;
字节[]缓冲区;
int maxBufferSize=1*1024*1024;
文件源文件=新文件(路径);
如果(!sourceFile.isFile()){
Log.e(“上传文件”,“源文件不存在”);
//返回0;
}
尝试{//打开到Servlet的URL连接
FileInputStream FileInputStream=新的FileInputStream(sourceFile);
URL URL=新URL(upLoadServerUri);
conn=(HttpURLConnection)url.openConnection();//打开到url的HTTP连接
conn.setDoInput(true);//允许输入
conn.setDoOutput(true);//允许输出
conn.setUseCaches(false);//不要使用缓存副本
conn.setRequestMethod(“POST”);
conn.setRequestProperty(“连接”、“保持活动”);
conn.setRequestProperty(“ENCTYPE”、“多部分/表单数据”);
conn.setRequestProperty(“内容类型”、“多部分/表单数据;边界=“+boundary”);
conn.setRequestProperty(“产品图像”,文件名);
dos=新的DataOutputStream(conn.getOutputStream());
写字节(两个连字符+边界+行结束);
writeBytes(“内容处理:表单数据;名称=\”产品图像\“文件名=\”+文件名+“\”+行结束”);
dos.writeBytes(lineEnd);
bytesAvailable=fileInputStream.available();//创建最大大小的缓冲区
bufferSize=Math.min(字节可用,maxBufferSize);
buffer=新字节[bufferSize];
//读取文件并将其写入表单。。。
bytesRead=fileInputStream.read(缓冲区,0,缓冲区大小);
而(字节读取>0){
写入(缓冲区,0,缓冲区大小);
bytesAvailable=fileInputStream.available();
bufferSize=Math.min(字节可用,maxBufferSize);
bytesRead=fileInputStream.read(缓冲区,0,缓冲区大小);
}
//发送文件数据后所需的多部分表单数据。。。
dos.writeBytes(lineEnd);
写字节(两个连字符+边界+两个连字符+行结束);
//基里姆电话
conn.setRequestMethod(“POST”);
conn.setRequestProperty(“连接”、“保持活动”);
conn.setRequestProperty(“ENCTYPE”、“多部分/表单数据”);
conn.setRequestProperty(“内容类型”、“多部分/表单数据;边界=“+boundary”);
conn.setRequestProperty(“电话”,mPhoneNumber);
dos=新的DataOutputStream(conn.getOutputStream());
写字节(两个连字符+边界+行结束);
writeBytes(“内容处理:表单数据;名称=\“phone\”文件名=\”“+mPhoneNumber+“\”“+lineEnd”);
dos.writeBytes(lineEnd);
bytesAvailable=fileInputStream.available();//创建最大大小的缓冲区
bufferSize=Math.min(字节可用,maxBufferSize);
buffer=新字节[bufferSize];
//读取文件并将其写入表单。。。
bytesRead=fileInputStream.read(缓冲区,0,缓冲区大小);
而(字节读取>0){
写入(缓冲区,0,缓冲区大小);
bytesAvailable=fileInputStream.available();
bufferSize=Math.min(字节可用,maxBufferSize);
bytesRead=fileInputStream.read(缓冲区,0,缓冲区大小);
}
//发送文件数据后所需的多部分表单数据。。。
dos.writeBytes(lineEnd);
写字节(两个连字符+边界+两个连字符+行结束);
//来自服务器的响应(代码和消息)
serverResponseCode=conn.getResponseCode();
字符串serverResponseMessage=conn.getResponseMessage();
Log.i(“uploadFile”,“HTTP响应为:“+serverResponseMessage+”:“+serverResponseCode”);
如果(服务器响应代码==200){
runOnUiThread(新的Runnable(){
公开募捐{
//tv.setText(“文件上传完成”);
Toast.makeText(Activity3.this,“文件上传完成”,Toast.LENGTH_SHORT.show();
}
});                
}    
//关闭溪流//
fileInputStream.close();
dos.flush();
dos.close();
}捕获(畸形)
pDialog.disclose();
例如printStackTrace();
Toast.makeText(Activity3.this,“MalformedURLException”,Toast.LENGTH_SHORT.show();
Log.e(“将文件上载到服务器”,“错误:+ex.getMessage(),ex”);
}捕获(例外e){
pDialog.disclose();
e、 printStackTrace();
Toast.makeText(Activity3.this,“异常:+e.getMessage(),Toast.LENGTH_SHORT).show();
Log.e(“上传文件到服务器异常”,“异常:+e.getMessage(),e”);
}
pDialog.disclose();
//返回服务器响应代码;
} 
}
但它显示了错误:

爪哇