android中文件上传期间的内部服务器错误

时间:2016-09-21 08:14:38

标签: php android asyncfileupload

我想将文件从我的设备上传到php server.But我在文件上传过程中收到内部服务器错误的响应。如何解决此错误并正确上传文件。我试过这样的事情。

try {

              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(selectedFilePath);

              if (sourceFile.isFile()) {

                  try {

                      String upLoadServerUri ="http://www.abservetechdemo.com/mobile/user/cvinsert";
                      // open a URL connection to the Servlet
                      FileInputStream fileInputStream = new FileInputStream(
                              sourceFile);
                      URL url = new URL(upLoadServerUri);


                      conn = (HttpURLConnection) url.openConnection();
                      conn.setDoInput(true);
                      conn.setDoOutput(true);
                      conn.setUseCaches(false);
                      conn.setRequestMethod("POST");
                      conn.setRequestProperty("Connection", "Keep-Alive");
                      conn.setRequestProperty("User-Agent", "Android Multipart HTTP Client 1.0");
                      conn.setRequestProperty("ENCTYPE",
                              "multipart/form-data");
                      conn.setRequestProperty("Content-Type",
                              "multipart/form-data;boundary=" + boundary);

                      conn.setRequestProperty("cv", selectedFilePath);



                      conn.setRequestProperty("user_id", "27");
                      dos = new DataOutputStream(conn.getOutputStream());

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

                      dos.writeBytes(lineEnd);

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

                      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);

                      }

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

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

                      Log.e("serverResponseMessage",serverResponseMessage);

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

                  } catch (Exception e) {
                      // dialog.dismiss();
                      e.printStackTrace();

                  }
          `

我的logcat错误

09-21 14:47:35.244 3576-15332/com.abservetech.video E/serverResponseMessage: Internal Server Error

0 个答案:

没有答案