2017-03-29 17 views
-2

lampp ht-docsディレクトリ内の共有フォルダにファイルをアップロードする必要があります。htdocs内の共有フォルダにあるアンドロイドアップロードファイル

ファイルは内部ストレージです。私にもそのファイルのパスがあります。

私はいくつかのソリューションを試しましたが、そのファイルをlampp ht-docsの共有フォルダに移動していません。

私はこののようにURLを持っています。 OrderFilesはlampp htdocsディレクトリ内の共有フォルダです。ファイルパスinternal storageからfileをここにアップロードします。

これは私が試したものです。

public void uploadLocal() { 
     HttpURLConnection conn = null; 
     DataOutputStream dos = null; 
     DataInputStream inStream = null; 
     File fileName = new File(DBController.lastXmlPathLocal); 
     Log.w("getAbsolutePath", fileName.getAbsolutePath()); 
     Log.w("getPath", fileName.getPath()); 
     String existingFileName = fileName.getAbsolutePath(); 
     Log.w("existingFileName", existingFileName); 
     String lineEnd = "\r\n"; 
     String twoHyphens = "--"; 
     String boundary = "*****"; 
     int bytesRead, bytesAvailable, bufferSize; 
     byte[] buffer; 
     int maxBufferSize = 1 * 1024 * 1024; 
     String responseFromServer = ""; 
     String urlString = "http://192.168.1......./OrderFiles/"; 
     Log.w("urlString", urlString); 
     try { 
      //------------------ CLIENT REQUEST 
      FileInputStream fileInputStream = new FileInputStream(new File(fileName.getPath())); 
      // open a URL connection to the Servlet 
      URL url = new URL(urlString); 
      // Open a HTTP connection to the URL 
      conn = (HttpURLConnection) url.openConnection(); 
      // Allow Inputs 
      conn.setDoInput(true); 
      // Allow Outputs 
      conn.setDoOutput(true); 
      // Don't use a cached copy. 
      conn.setUseCaches(false); 
      // Use a post method. 
      conn.setRequestMethod("POST"); 
      conn.setRequestProperty("Connection", "Keep-Alive"); 
      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=\"uploadedfile\";filename=\"" + existingFileName + "\"" + 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) 
      Log.v("info", ".size." + bytesRead); 
      for (int n1 = 0; n1 < bytesRead; n1++) { 


       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); 
      // close streams 
      Log.v("info", "File is written"); 
      fileInputStream.close(); 
      dos.flush(); 
      dos.close(); 
     } catch (MalformedURLException ex) { 
      Log.v("info", "error: " + ex.getMessage(), ex); 
     } catch (IOException ioe) { 
      Log.v("info", "error: " + ioe.getMessage(), ioe); 
     } 
     /*//------------------ read the SERVER RESPONSE 
     try { 
      inStream = new DataInputStream(conn.getInputStream()); 
      String str; 

      while ((str = inStream.readLine()) != null) { 
       Log.v("info", "Server Response " + str); 
      } 
      inStream.close(); 

     } catch (IOException ioex) { 
      Log.v("info", "error: " + ioex.getMessage(), ioex); 
     }*/ 
    } 

上記コードlogcatFile is writtenを示すが、そのフォルダ内のファイルのいずれかを示していません。

これを統合する他のソリューションはありますか?

ご協力いただければ幸いです。

+0

@Downvoter downvotingする理由を明記してください。問題を改善する必要がある。 –

+0

'// ------------------サーバーの応答を読み込みます。あなたはそれをするべきです。そして、私たちに答えを教えてください。 – greenapps

+0

'String urlString =" http://192.168.1......./OrderFiles/ ";'どのようなPHPスクリプトは、最初のURLの背後にある? – greenapps

答えて

0

最初にファイルをアップロードするには、まずPHPスクリプトが必要です。その後、PHPスクリプトには、アップロードしたファイルを希望のフォルダに移動するためのコードが含まれている必要があります。そしてそれはそれがどうやって行くのかです。そしてそれがあなたがそれをどうするべきかです。

関連する問題