当前位置 : 主页 > 编程语言 > c++ >

Android 文件上传

来源:互联网 收集:自由互联 发布时间:2021-07-03
Android okhttp3 实现文件上传 package com.halo.indiana.app.utils;import java.io.File;import java.io.IOException;import okhttp3.MediaType;import okhttp3.MultipartBody;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.Req
Android okhttp3 实现文件上传
package com.halo.indiana.app.utils;

import java.io.File;
import java.io.IOException;

import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

public class UploadHelper {

    public static final String TAG = "UploadHelper";
    private static final MediaType MEDIA_TYPE_PNG = MediaType.parse("image/png");
    private final OkHttpClient client = new OkHttpClient();

    public String upload(String userId, File file) {

        RequestBody fileBody = RequestBody.create(MediaType.parse("image/png"), file);

        RequestBody requestBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
///                .addPart(
//                        Headers.of("Content-Disposition", "form-data; name=\"file\"; filename=\"" + fileName + "\""),
//                        RequestBody.create(MEDIA_TYPE_PNG, file))
//                .addPart(
//                        Headers.of("Content-Disposition", "form-data; name=\"imagetype\""),
//                        RequestBody.create(null, imageType))
//                .addPart(
//                        Headers.of("Content-Disposition", "form-data; name=\"userphone\""),
//                        RequestBody.create(null, userPhone))

                .addFormDataPart("file", "testfilename.png", fileBody)
                .addFormDataPart("userId", userId)
                .build();

        Request request = new Request.Builder()
                .url("http://mp.scp-cctv.com:8088/EYIZCO/api/uploadFile")
                .post(requestBody)
                .build();

        Response response;
        try {
            response = client.newCall(request).execute();
            String jsonString = response.body().string();
            System.out.println("reslut :"+jsonString);

            if (!response.isSuccessful()) {
                System.out.println("error...");
            } else {
                System.out.println("success...");
            }

        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("upload IOException "+e.getMessage());
        }
        return null;
    }
}
Jfinal文件上传后台实现
/**
	 * 文件上传
	 */
	public void uploadFile(){
		boolean isSuccess = false;
		String image_url = "";
		File file = null;
		try {
			getFiles();
			String userId = getPara("userId");
			
			TUser user = TUser.dao.findById(userId);
			if (user == null) {
				renderJson(result.addError("此用户不存在"));
				return;
			}
			
			UploadFile uploadFile = getFile("file");
			file = uploadFile.getFile();
			//获取文件名称
			String fileName=uploadFile.getFileName();
			String suffix=fileName.substring(fileName.indexOf("."));
			
			//获取上传文件的路径
			String uploadPath= PropKit.get("static_root");
			String domain_static= PropKit.get("domain_static");
			String newName = StringUtils.getUUID().concat(suffix);
			String dir = HashKit.md5(userId).substring(0, 16);
			StringBuffer dirPath = new StringBuffer();
			dirPath.append(uploadPath).append(File.separator).append(dir);
			File directory = new File(dirPath.toString());
			if (!directory.exists()) {
				directory.mkdirs();
			}
			File newFile = new File(dirPath.toString(),newName);
			if (!newFile.exists()) {
				newFile.createNewFile();
			}
			isSuccess = file.renameTo(newFile);
			
			System.out.println("文件路径>"+dirPath.toString()+ " "+isSuccess);
			log.info("文件路径>"+dirPath.toString());
			if (isSuccess) {
				image_url = domain_static.concat(dir).concat("/").concat(newName);
				user.set("image_url", image_url);
				user.set("updateDate", new Date());
				isSuccess = user.update();
			}
			if (!isSuccess) {
				renderJson(result.addError("文件上传失败"));
				return;
			}
			renderJson(result.success(image_url));
			return;
		} catch (Exception e) {
			e.printStackTrace();
			result.addError("系统异常"+e.getMessage());
			renderJson(result);
		}finally {
			if (file!=null && file.exists()) {
				file.delete();
			}
		}
	}
网友评论