2014-10-20 48 views
0

Server代码如何在android上载图片?

@POST 
    @Path("/feedback1") 
    @Consumes(MediaType.MULTIPART_FORM_DATA) 
    @Produces(MediaType.APPLICATION_JSON) 
    public ServiceResponse Feedback1(@FormDataParam("file") InputStream file_in,@FormDataParam("file") FormDataContentDisposition fileDetail) 
    { 
     final ServiceResponse response = new ServiceResponse(); 
     Boolean flag=false;int size = 0; 
     String fileName = null; 
     fileName = fileDetail.getFileName().trim(); 
     try{ 
     File file = new File(System.getProperty("java.io.tmpdir") + System.getProperty("file.separator") +fileDetail.getFileName()); 
     FileOutputStream fos = new FileOutputStream(file); 
     int read =0; 
     byte[] bytes = new byte[1024]; 
     while ((read = file_in.read(bytes)) != -1) { 
     fos.write(bytes, 0, read); 
     } 
     size=(int) (file.length()/1024); 
     System.out.println(size); 

     }catch(IllegalStateException | IOException e) 
     { 
     LOG.error("problem sending feedback from Feedback method : ", e); 
     flag=true; 
     ServiceUtil.setFailureMessage(response, e.getMessage(), null); 
     } 
     if (!flag) { 
     ServiceUtil.setSuccessMessage(response, SUCCESS +" filename= "+ fileName + " size =" + size +"KB", null); 
     } 
     return response; 
    } 

我上传。我是能够获得图像的字节在服务器上的图像现在我需要上载服务器映像可以请你告诉我怎么将实现这个 我收到此错误

java.net.ProtocolException:不支持输出

这里是我的代码。我想过去图像的字节该功能。但我在这一行越来越错误

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

private void uploadFile(byte[] bytes) { 
    // TODO Auto-generated method stub 
    HttpURLConnection conn = null; 
    DataOutputStream dos = null; 
    String lineEnd = "\r\n"; 
    String twoHyphens = "--"; 
    String boundary = "*****"; 
     try { 
     URL url = new URL("http://192.XXX.X2.X:8080/FGRailApps/jservices/rest/feedback1"); 

      // Open a HTTP connection to the URL 
      conn = (HttpURLConnection) url.openConnection(); 
      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); 

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

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

      dos.writeBytes(lineEnd); 
      dos.write(bytes); 
      dos.writeBytes(lineEnd); 
      dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd); 

      // Responses from the server (code and message) 
      serverResponseCode = conn.getResponseCode(); 
      String serverResponseMessage = conn.getResponseMessage(); 
      Log.d("---------------", serverResponseMessage); 

    } catch (MalformedURLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (ProtocolException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 



} 

回答

0
public static boolean Upload(String sourceFileName) { 
    String uuid = UUID.randomUUID().toString(); 
    System.out.println("uuid = " + uuid); 
    FTPClient ftpClient = new FTPClient(); 
    // File sdCard = Environment.getExternalStorageDirectory(); 
    File file = new File(sourceFileName);  
    try { 
     ftpClient.connect(InetAddress.getByName(FTPCONSTANTS.HOST_NAME)); 
     ftpClient.login(FTPCONSTANTS.USER_NAME, FTPCONSTANTS.PASSWORD); 
     ftpClient.changeWorkingDirectory(MessageActivity.Path1);  

     //if (ftpClient.getReplyString().contains("250")) { 
      Log.e("%%%%%%%%%", "888888888"); 

      ftpClient 
        .setFileType(org.apache.commons.net.ftp.FTP.BINARY_FILE_TYPE); 
      BufferedInputStream buffIn = null; 
      ftpClient.enterLocalPassiveMode(); 
      FileInputStream in = new FileInputStream(file); 




       result = ftpClient.storeFile(MessageActivity.Path1 + uuid 
         + "." + "mp4", in); 

       result1 = MessageActivity.Path1 + uuid + "." + "mp4"; 
       System.out.println("cjkkkkkkkkkkkkkkkk " + result1); 






      /* 
      * result = ftpClient.storeFile(FTPCONSTANTS.FOLDER_PATH + "/" 
      * + sourceFileName.substring(sourceFileName.lastIndexOf("/") + 
      * 1, sourceFileName.length()), in); 
      */ 
      in.close(); 
      if (result) 
       Log.v("upload result", "succeeded"); 
      ftpClient.logout(); 
      ftpClient.disconnect(); 
     //} 

    } catch (SocketException e) { 
     Log.e("", e.getStackTrace().toString()); 
    } catch (UnknownHostException e) { 
     Log.e("", e.getStackTrace().toString()); 
    } catch (IOException e) { 
     Log.e("", e.getStackTrace().toString()); 
    } 
    return result; 

} 
+0

上传图片,视频或音频 – deepak825 2014-10-20 11:12:24

+0

但什么是我的代码 – 2014-10-20 11:14:37

+0

问题使用这个简单的上传更少的时间被采取到uoload – deepak825 2014-10-20 11:16:55