用ajax spring boot 上传文件到文件服务器

目录

1.前段技术 ajax

2.html内容

3.java 代码

4.java 工具类

5.pom.xml引入依赖


 

1.前段技术 ajax

//上传文件方法
function clickUPFile(){ 
        //添加获取文件信息
        var formdata=new FormData();
        formdata.append('enctype', 'multipart/form-data');
        formdata.append('name', 'file');
        formdata.append('file',$('#file').get(0).files[0]);
        // formdata.append('recid',str);
        $.ajax({
            url:porject.host+'/2/serviceUploadas',
            type:'post',
            contentType:false,
            data:formdata,
            processData:false,
            success:function(info){    
                console.log(info)
               // $('.backimg').attr('src',JSON.parse(info).msg);
            },
            error:function(err){
                console.log(err)
            }
        });
}

 

2.html内容

 
 

 

3.java 代码

/**
	 * 文件上传方法
	 * 
	 * @param file
	 * @param session
	 * @return
	 */
	@RequestMapping("/2/serviceUploadas")
	@ResponseBody
	public String serviceUploadas(@RequestParam("file") MultipartFile file, HttpServletRequest request) {
 
		// 文件判断为空
		if (file.isEmpty())
			return "上传失败,请选择文件";

		// 获取文件原始名称
		String fileOriginalName = file.getOriginalFilename();

		// 校验文件名安全性
		if (fileOriginalName.indexOf(".") != -1) {// 判断事包含带有结尾符的文件
			// 只支持上传jpg格式文件图片
			if (fileOriginalName.split("\\.")[1].equals("jpg")) {
				String fliePrefix = UUID.randomUUID().toString().replace("-", "");
				String key = new StringBuffer("/superf/u_").append(fliePrefix).append(".")
						.append(fileOriginalName.split("\\.")[1]).toString();

				File excelFile = null;
				try {
					excelFile = File.createTempFile(key, ".jpg");
					file.transferTo(excelFile);

					// 执行上传方法
					if (fu.upLoadFileTX(key, excelFile) != null)
						return ServerUrlImg + key;

				} catch (IllegalStateException e) {
					e.printStackTrace();
				} catch (IOException e) {
					e.printStackTrace();
				} finally {
					if (excelFile.exists()) {
						excelFile.delete();
					}
				}
			}
		}

		return "error";
	}

 

4.java 工具类

package com.supermap.file;

import java.io.File;

import org.apache.commons.logging.Log;
import org.apache.tomcat.util.http.fileupload.disk.DiskFileItem;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

import com.qcloud.cos.COSClient;
import com.qcloud.cos.ClientConfig;
import com.qcloud.cos.auth.BasicCOSCredentials;
import com.qcloud.cos.auth.COSCredentials;
import com.qcloud.cos.model.PutObjectRequest;
import com.qcloud.cos.model.PutObjectResult;
import com.qcloud.cos.region.Region;

import ch.qos.logback.classic.Logger;

/**
 * 文件服务器公共类
 * 
 * @author yushen
 *
 */
@Component
public class FileUitl {

	@Value("${fileuitl.akid}")
	private String AKID;

	@Value("${fileuitl.akd}")
	private String AKD;

	@Value("${fileuitl.region}")
	private String Region;

	@Value("${fileuitl.bucketname}")
	private String bucketname;

	private COSClient cosClient;

	private COSClient getClient() {
		COSCredentials cred = new BasicCOSCredentials(AKID, AKD);
		ClientConfig clientConfig = new ClientConfig(new Region(Region));
		cosClient = new COSClient(cred, clientConfig);
		return cosClient;
	}

	public String upLoadFileTX(String key, File file) {
		if (cosClient == null) {
			cosClient = getClient();
		}
		PutObjectRequest putObjectRequest = new PutObjectRequest(bucketname, key, file);
		PutObjectResult putObjectResult = cosClient.putObject(putObjectRequest);
		return putObjectResult.getETag();
	}

	public void delFileTX(String key) {
		if (cosClient == null) {
			cosClient = getClient();
		}
		cosClient.deleteObject(bucketname, key);
	}
}

 

5.pom.xml引入依赖

 
		
          com.qcloud
          cos_api
          5.4.10
		

 

你可能感兴趣的:(spring,boot,spring,cloud,js,jquery,java)