简体   繁体   English

Android使用php上传文件到服务器

[英]Android upload file to server using php

Hello am trying to upload a file from external storage of android phone to the url in the variable upLoadServerUri as below. 您好我正在尝试将文件从Android手机的外部存储上传到变量upLoadServerUri中的url,如下所示。

final String upLoadServerUri = "http://www.www.com/UploadToServer.php";
URL url = new URL(upLoadServerUri);

// Open a HTTP  connection to  the URL
conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true); // Allow Inputs
conn.setDoOutput(true); // Allow Outputs
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);
conn.setRequestProperty("uploaded_file", fileName);

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

dos.writeBytes(twoHyphens + boundary + lineEnd);
dos.writeBytes("Content-Disposition: form-data; name=\"uploaded_file\";filename=\""
        + fileName + "\"" + 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);
    Log.d("Inside ByteRead", "Reading");
}

// send multipart form data necesssary after file data...
dos.writeBytes(lineEnd);
dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);

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


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

The code below is being used in the UploadToServer.php file which is the destination url file in the java code above. 下面的代码用在UploadToServer.php文件中,该文件是上面java代码中的目标url文件。 I don't have knowledge on php end so can you advise me if below code would be able to store data when we trigger a file to it based on the java code above. 我没有关于php end的知识所以你可以告诉我,如果我们根据上面的java代码触发文件时,下面的代码是否能够存储数据。 Thanks. 谢谢。

<?php
// Where the file is going to be placed
$target_path = "recorded/";

/* Add the original filename to our target path.
Result is "uploads/filename.extension" */
$target_path = $target_path . basename( $_FILES['uploaded_file']['name']);

if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploaded_file']['name']).
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
    echo "filename: " .  basename( $_FILES['uploaded_file']['name']);
    echo "target_path: " .$target_path;
}
?>

Please try retrofit. 请尝试改造。 Its simple and easy. 它简单易行。 Read this tutorial. 阅读本教程。 Upload Files to Server 将文件上传到服务器

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM