2016-10-15 3 views
1

私はオーディオファイルをユーザデータとともにアップロードする方法が1週間ほど苦労しているので、データベースに保存するものを決定することができます。
ファイルは正常にアップロードされましたが、ユーザー名を取得できません。
@ user5155835 hereにも同じ問題があり、明らかに彼によって解決されましたが、動作させることができません。
私はこれについていくつかの助けが必要です。私はこのコードを破棄し、さまざまな方法を使用しましたが、POST変数を決して見ることはできません。
私の苦労で私はこのコードに戻っています。私は複数のasyncTaskプロセスを扱っており、gradleのライブラリをコンパイルするのは悪夢でした。サーバーで

FileInputStream fileInputStream = new FileInputStream(new File(existingFileName)); 
       // 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) { 

        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 file data... 
       dos.writeBytes(lineEnd); 
       dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd); 


       dos.writeBytes("Content-Disposition: form-data; name=\"user\"" +params[0] +"\""+lineEnd); 

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


       // close streams 
       Log.e("Debug", "File is written"); 
       fileInputStream.close(); 
       dos.flush(); 
       dos.close(); 

アンドロイド

。サーバー

E/Debug: File is written 
E/Debug: Server Response email is 
+0

問題があることは非常に奇妙です。ファイルやいくつかのパラメータを投稿するためのコードは、たいていstackoverflowに投稿されています。それでなぜあなたはそれを見つけることができないのですか?原理的には、すべてのパラメータとその値は2つの境界線の間で送信する必要があります。ファイルのように。だからgoogle。 – greenapps

答えて

0

から

$email = $_POST['user']; 
echo "email is ".$email; 

    $strSQL = "SELECT * FROM member WHERE email = '".$email."' "; 
    $objQuery = mysql_query($strSQL); 
    $objResult = mysql_fetch_array($objQuery); 
    if($objResult) 
    { 
     //upload file 
    } 

私はあなたのための小さな提案を持っています。サーバーに投稿する必要があるデータがあまりない場合は、できることがあります。データをパラメータを取得し、ファイルをポストパラメータとして渡します。

http://example.com/TestPost.phpは、あなたがhttp://example.com/[email protected]のようにそれを作る必要があります:あなたのURLがあれば、あなたは、たとえば$ _GET [「ユーザー」]

からのユーザーおよびその他のデータを取得することができます。

これは良い解決策ではありませんが、今のところあなたのために働きます。

+0

この投稿は質問に答える実際の試みではありません。 [Stack Overflowはディスカッションフォーラムのようには動作しません](http://stackoverflow.com/about)、すべての投稿が質問または質問に対する回答のいずれかであるQ&Aサイトです。投稿には、[コメント](http://stackoverflow.com/help/privileges/comment) - このような小さな文章があります。これは、著者の説明を批評したり、説明を求めるのに使うことができます。これはコメントか[新しい質問](http://stackoverflow.com/questions/ask)のいずれかでなければなりません。 –

+0

この投稿は質問に答える実際の試みではありません。 [Stack Overflowはディスカッションフォーラムのようには動作しません](http://stackoverflow.com/about)、すべての投稿が質問または質問に対する回答のいずれかであるQ&Aサイトです。投稿には、[コメント](http://stackoverflow.com/help/privileges/comment) - このような小さな文章があります。これは、著者の説明を批評したり、説明を求めるのに使うことができます。これはコメントか[新しい質問](http://stackoverflow.com/questions/ask)のいずれかでなければなりません。 –

関連する問題