我们已经准备好了,你呢?

我们与您携手共赢,为您的企业形象保驾护航!

当前位置: 首页 > 知识 > android 上传 服务器

在Android中上传文件到服务器,通常需要以下步骤:

1、获取文件路径

2、创建HttpURLConnection对象

3、设置请求属性

4、写入数据

5、读取响应

6、关闭连接

以下是详细的代码示例:

import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.net.HttpURLConnection;import java.net.URL;public class UploadToServer {    // server url where the file will be posted    private static final String UPLOAD_URL = "http://yourserverurl.com/upload";    public void uploadFile(String sourceFileUri) {        String fileName = sourceFileUri;        HttpURLConnection conn = null;        DataOutputStream dos = null;        String lineEnd = "r";        String twoHyphens = "";        String boundary = "*****";        int bytesRead, bytesAvailable, bufferSize;        byte[] buffer;        int maxBufferSize = 1 * 1024 * 1024;        File sourceFile = new File(sourceFileUri);        if (!sourceFile.isFile()) {            Log.e("Huzzaman", "Source File not exist :" + sourceFileUri);            return;        }        try {            // open a URL connection to the Servlet            FileInputStream fileInputStream = new FileInputStream(sourceFile);            URL url = new URL(UPLOAD_URL);            conn = (HttpURLConnection) url.openConnection(); // Open a HTTP  connection to  the URL            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", "KeepAlive");            conn.setRequestProperty("ENCTYPE", "multipart/formdata");            conn.setRequestProperty("ContentType", "multipart/formdata;boundary=" + boundary);            conn.setRequestProperty("file", fileName);            dos = new DataOutputStream(conn.getOutputStream());            dos.writeBytes(twoHyphens + boundary + lineEnd);            dos.writeBytes("ContentDisposition: formdata; name="file";filename="" + fileName + """ + lineEnd);            dos.writeBytes(lineEnd);            bytesAvailable = fileInputStream.available(); // create a buffer of  maximum size            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);            // Responses from the server (code and message)            serverResponseCode = conn.getResponseCode();            String serverResponseMessage = conn.getResponseMessage();            Log.i("Upload file to server", "HTTP Response is : " + serverResponseMessage + ": " + serverResponseCode);            if (serverResponseCode == 200) {                // Toast message                Runnable completeMsg = () > Toast.makeText(getActivity(), "File Upload Complete.", Toast.LENGTH_SHORT).show();                getActivity().runOnUiThread(completeMsg);            }            //close the streams //            fileInputStream.close();            dos.flush();            dos.close();        } catch (MalformedURLException ex) {            ex.printStackTrace();            Log.e("Upload file to server", "error: " + ex.getMessage(), ex);        } catch (Exception e) {            e.printStackTrace();            Log.e("Upload file to server", "Could not upload file: " + e.getMessage(), e);        }    }}

在这个例子中,我们首先创建一个HttpURLConnection对象,然后设置请求属性,包括请求方法、连接类型、内容类型等,我们打开一个文件输入流,读取文件内容并写入HttpURLConnection的输出流,我们读取服务器的响应并关闭连接。

免责声明:本站内容(文字信息+图片素材)来源于互联网公开数据整理或转载,仅用于学习参考,如有侵权问题,请及时联系本站删除,我们将在5个工作日内处理。联系邮箱:chuangshanghai#qq.com(把#换成@)

我们已经准备好了,你呢?

我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

132-7207-3477

上班时间

周一到周五 09:00-18:00

二维码
线