ssh多文件上传的处理思路

首先多文件上传当出现action找不到的时候一定要查看自己的表单的提交方式,enctype方式,默认不支持文件上传。

后台代码的处理方式如下所示

/**
* 发布活动
*/
public void Activity_reply() {
String date = TimeUtils.getCurrentTime();
activity_releaseService.applyActivity(activity_release,date);
//如果的到的上传文件为空,则不处理
if(file!=null){
for(int i=0;i<file.size();i++){
//循环上传每一个文件
upload(i,activity_release.getActivity_email(),date);
}
}
}

/**
* 处理上传的图片
* @param i
* @param email
* @param date
* @return
*/
public String upload(int i,String email,String date) {
String filename=this.getFileFileName().get(i);
String fileType=this.getFileContentType().get(i);
String path="E:\\Tomcat\\uploads\\";
filename=UploadUtils.getFileName(filename);
String taskfilePath=path+filename;
File file_path=new File(taskfilePath);
String result=null;
return result=activity_releaseService.upload_image(file.get(i),file_path,taskfilePath,email,date);
}

@Override
public String upload_image(File file, File file_path, String taskfilePath,
String email,String date) {
// TODO Auto-generated method stub
try {
FileUtil.copyFile(file, file_path);
FilePath filePath=new FilePath();
filePath.setEmail(email);
filePath.setFilepath(taskfilePath);
filePath.setDate(date);
activity_releaseDao.upload_image(filePath);
return null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "input";
}

}

时间工具类

package Vms.Lee;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.junit.Test;

public class TimeUtils {
public static String getCurrentTime(){
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateCurrent=dateFormat.format(new Date());
return dateCurrent;
}
public static String getCurrentTimeNumber(){
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyyMMddHHmmss");
String dateCurrent=simpleDateFormat.format(new Date());
return dateCurrent;
}
}

MD5Utils加密工具类

package Vms.Lee;

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Utils {
/**
* 使用md5的算法进行加密
*/
public static String md5(String plainText) {
byte[] secretBytes = null;
try {
secretBytes = MessageDigest.getInstance("md5").digest(
plainText.getBytes());
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("没有md5这个算法!");
}
String md5code = new BigInteger(1, secretBytes).toString(16);// 16进制数字
// 如果生成数字未满32位,需要前面补0
for (int i = 0; i < 32 - md5code.length(); i++) {
md5code = "0" + md5code;
}
return md5code;
}
}

文件名工具类

package Vms.Lee;

import java.util.Random;
import java.util.UUID;

import org.junit.Test;

public class UploadUtils {
public static String getFileName(String filename){
// 先查找
int index = filename.lastIndexOf(".");
// 截取
String lastname = filename.substring(index, filename.length());

// 唯一 字符串 fsd-sfsdf-sfsd-sdfsd
String date=TimeUtils.getCurrentTimeNumber();
Random random=new Random();
date=date+random.nextInt(10);
return date+lastname;
}
public static String getUUIDName(String filename){
// 先查找
int index = filename.lastIndexOf(".");
// 截取
String lastname = filename.substring(index, filename.length());
// 唯一 字符串 fsd-sfsdf-sfsd-sdfsd
String uuid = UUID.randomUUID().toString().replace("-", "");
return uuid+lastname;
}
@Test
public void test() {
String filename = "girl.jpg";
String uuid = getFileName(filename);
System.out.println(uuid);
}
}

hibernate加载工具类

package Vms.Lee;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
* hibernate开始session
* @author LesLee
*
*/
public class HibernateUtils {
private static final Configuration CONFIG;
private static final SessionFactory FACTORY;
// 编写静态代码块
static{
// 加载XML的配置文件
CONFIG = new Configuration().configure();
// 构造工厂
FACTORY = CONFIG.buildSessionFactory();
}
public static Session getsSession(){
return FACTORY.openSession();
}

}

fastjson工具类

package Vms.Lee;

import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;

public class FastJsonUtils {


/**
* 将对象转成json串
* @param object
* @return
*/
public static String toJSONString(Object object){
//DisableCircularReferenceDetect来禁止循环引用检测
return JSON.toJSONString(object,SerializerFeature.DisableCircularReferenceDetect);
}

//输出json
public static void write_json(HttpServletResponse response,String jsonString){
response.setContentType("application/json;utf-8");
response.setCharacterEncoding("UTF-8");
try {
response.getWriter().print(jsonString);
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* ajax提交后回调的json字符串
* @return
*/
public static String ajaxResult(boolean success,String message)
{
Map map=new HashMap();
map.put("success", success);//是否成功
map.put("message", message);//文本消息
String json= JSON.toJSONString(map);
return json;
}

/**
* JSON串自动加前缀
* @param json 原json字符串
* @param prefix 前缀
* @return 加前缀后的字符串
*/

public static String JsonFormatterAddPrefix(String json,String prefix,Map<String,Object> newmap)
{
if(newmap == null){
newmap = new HashMap();
}
Map<String,Object> map = (Map) JSON.parse(json);

for(String key:map.keySet())
{
Object object=map.get(key);
if(isEntity(object)){
String jsonString = JSON.toJSONString(object);
JsonFormatterAddPrefix(jsonString,prefix+key+".",newmap);

}else{
newmap.put(prefix+key, object);
}

}
return JSON.toJSONString(newmap);
}
/**
* 判断某对象是不是实体
* @param object
* @return
*/
private static boolean isEntity(Object object)
{
if(object instanceof String )
{
return false;
}
if(object instanceof Integer )
{
return false;
}
if(object instanceof Long )
{
return false;
}
if(object instanceof java.math.BigDecimal )
{
return false;
}
if(object instanceof Date )
{
return false;
}
if(object instanceof java.util.Collection )
{
return false;
}
return true;

}
}

 

转载于:https://www.cnblogs.com/jianxin-lilang/p/6600679.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值