2016-03-23 12 views
0

GÜNCELLEME cevabı burada :) https://stackoverflow.com/a/23648537/6042879Video ve değişken sunucuya yüklensin mi?

i PHP komut dosyası kullanmak benim sunucuya benim video ve bir değişken yüklemek mümkün olmak istiyorum.

Şu ana kadar telefonumdan istediğim videoyu seçebilir ve sunucuya mükemmel bir şekilde yükleyebilirim ancak video ile değişkenin nasıl gönderileceğini tam olarak anlayamıyorum. Onları ayrı ayrı yapabilirim ama onları birleştirirsem işe yaramaz.

//Uploads the product details 
     try {//Try block is to see if the call to the database can work. 
      URL url = new URL(ProductDetails_URL);//Create a new URL and put there variable "register_URL" into it. 
      HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();//Create a httpConnection and open it 
      httpURLConnection.setRequestMethod("POST");//Use the request method 
      httpURLConnection.setDoOutput(true); 

      OutputStream OS = httpURLConnection.getOutputStream(); 
      BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(OS, "UTF-8")); 

      String data = URLEncoder.encode("ProductOwnerEmail", "UTF-8") + "=" + URLEncoder.encode(ProductOwnerEmail, "UTF-8") + "&" + 
      URLEncoder.encode(DescriptionPoint3, "UTF-8"); 

      bufferedWriter.write(data); 
      bufferedWriter.flush(); 
      bufferedWriter.close(); 
      OS.close(); 

      InputStream IS = httpURLConnection.getInputStream(); 
      IS.close(); 

     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { //url.openConnection() catch statement 
      e.printStackTrace(); 
     } 

Video yükleme kodu:

try{ 
       FileInputStream fileInputStream = new FileInputStream(sourceFile); 
       URL url = new URL(UploadVideo_URL); 
       conn = (HttpURLConnection) url.openConnection(); 
       conn.setDoInput(true); 
       conn.setDoOutput(true); 
       conn.setUseCaches(false); 
       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("myFile", selectedPath); 
       dos = new DataOutputStream(conn.getOutputStream()); 

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






       dos.writeBytes(twoHyphens + boundary + lineEnd); 
       dos.writeBytes("Content-Disposition: form-data;  name=\"Details\";Email=\"" + ProductOwnerEmail + "\"" + lineEnd); 
       dos.writeBytes(lineEnd); 
       dos.write(ProductOwnerEmail.getBytes()); 
       dos.writeBytes(lineEnd); 

       dos.writeBytes(twoHyphens + boundary + lineEnd); 
       dos.writeBytes("Content-Disposition: form-data; name=\"Details\";KeyCode=\"" + ProductKeyCode + "\"" + lineEnd); 
       dos.writeBytes(lineEnd); 
       dos.write(ProductOwnerEmail.getBytes()); 
       dos.writeBytes(lineEnd); 








       bytesAvailable = fileInputStream.available(); 
       Log.i("Huzza", "Initial .available : " + bytesAvailable); 

       bufferSize = Math.min(bytesAvailable, maxBufferSize); 
       buffer = new byte[bufferSize]; 

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

       serverResponseCode = conn.getResponseCode(); 

       fileInputStream.close(); 
       dos.flush(); 
       dos.close(); 

      } catch (Exception e) { 
       e.printStackTrace(); 
       return "Product upload failed"; 
      } 

PHP kodu:

<?php 

if($_SERVER['REQUEST_METHOD']=='POST'){ 
$file_name = $_FILES['myFile']['name']; 
$file_size = $_FILES['myFile']['size']; 
$file_type = $_FILES['myFile']['type']; 
$temp_name = $_FILES['myFile']['tmp_name']; 






$ProductOwnerEmail = $_FILES['Details']['Email']; 
$ProductKeyCode = $_FILES['Details']['KeyCode']; 

$NewDirectory = "/var/www/html/ProductVideos/" . $ProductOwnerEmail; 

if (!file_exists($NewDirectory)) 
{ 
    mkdir($NewDirectory, 0777, true); 
} 






$location = "/var/www/html/ProductVideos/$ProductOwnerEmail/" . $ProductKeyCode;//$NewDirectory . '/' . $file_name; 

move_uploaded_file($temp_name, $location); 
echo "Uploaded!"; 
}else{ 
echo "Error"; 
} 
?> 

cevap

1

size kod sonra:

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

i değişkenleri yüklemek için kullanmak için bu kodu kullanınAşağıdaki değişkenler göndermek gibi

şeyler yaz:

dos.writeBytes(LINE_END); 

// Loop a list of variable that you want to send to server. 
/*for (StringKeyValuePair pair : yourVariableList) { 
    dos.writeBytes(TWO_HYPHENS + BOUNDARY + LINE_END); 
    dos.writeBytes("Content-Disposition: form-data; name=\"" + pair.getKey()+ "\"" + LINE_END); 
    dos.writeBytes(LINE_END); 
    dos.write(pair.getValue().getBytes()); 
    dos.writeBytes(LINE_END); 
}*/ 

dos.writeBytes(TWO_HYPHENS + BOUNDARY + LINE_END); 
dos.writeBytes("Content-Disposition: form-data; name=\"ProductOwnerEmail\"" + LINE_END); 
dos.writeBytes(LINE_END); 
dos.write(ProductOwnerEmail.getBytes()); 
dos.writeBytes(LINE_END); 

dos.writeBytes(TWO_HYPHENS + BOUNDARY + LINE_END); 
dos.writeBytes("Content-Disposition: form-data; name=\"ProductKeyCode\"" + LINE_END); 
dos.writeBytes(LINE_END); 
dos.write(ProductKeyCode.getBytes()); 
dos.writeBytes(LINE_END); 
+0

.getKey() ve .getValue() Çalışmıyor musunuz? :/ –

+0

Bahsettiğim gibi StringKeyValuePair, kendimce bir sınıf oluşturur. Seninkini uygulamak zorundasın. Temel olarak, .getKey() öğesini, değişken adınızla ve .getValue() ile göndermek istediğiniz değerle değiştirin. PHP'de –

+0

kullanıyorum $ name = $ _POST ['name'] ;? ve bunu deneyin! –

İlgili konular