smartupload为什么使用smartupload执行上传保存操作时用这句smart.save("upload")失败用smart.save("/upload")成功
smartupload 时间:2021-07-02 阅读:(
)
jspsmartupload.jar怎么用啊?
我以前项目使用过,但是后来被摒弃了,因为jspsmartupload.jar已经很久没有更新,而且它在上传大文件时会有问题
建议使mons-fileupload.jar(另外需mons-io.jar)
下面为部分源代码:
/**Create a factory for disk-based file items*/
DiskFileItemFactory factory = new DiskFileItemFactory();
/**设置最大的内存大小*/
factory.setSizeThreshold(4096);
/**创建一个新的文件上传操作*/
ServletFileUpload upload = new ServletFileUpload(factory);
/**设置能上传的最大文件的大小*/
upload.setSizeMax(10*1024);
/**Parse the request*/
List fileItems = upload.parseRequest(request);
//开始读取上传信息
Iterator iter = fileItems.iterator();
// 依次处理每个上传的文件
while(iter.hasNext()) {
FileItem item = (FileItem) iter.next();
// 忽略其他不是文件域的所有表单信息
if (!item.isFormField()) {
String name = item.getName();
String endName = name.substring(name.lastIndexOf(".") + 1);
try{
item.write(new File(request.getRealPath("\"+sUploadDir+FileName+"."+ endName)));
}catch(Exception e){
e.printStackTrace();
}SmartUpload中文乱码如何解决???文件名的在Servlet中提取。
中文乱码问题 你可以使用一个转中文的工具类,在我的空间里也有。
很方便。
打包为.jar文件的话,也需要个工具类。
。
算了 我直接贴这吧。
方便后来人也
jar包的话 你去下mons-io-1.2.jar 就行了。
以下是ZIP工具类~
------------------------------------------
import java.io.*;
import java.util.Enumeration;
import java.util.zip.*;
mons.io.FilenameUtils;
/**
* zip压缩工具。
暂不支持中文文件名。
*
* @author zhangjin
*
*/
public class ZipUtils {
public static void main(String[] args) {
long start = System.currentTimeMillis();
zip("D:/bak", "D:/test.zip");
// System.out.println(System.currentTimeMillis() - start);
// start = System.currentTimeMillis();
// unzip("d:\test.zip", "d:\hoho");
System.out.println(getCRCCode("D:\sessionserver.jar"));
System.out.println(System.currentTimeMillis() - start);
}
public static final int DATA_BUFFER = 8192;
/**
* 获得crc签名。
* @param filename
* @return
*/
public static String getCRCCode(String filename){
String code = "";
try{
FileInputStream fileinputstream = new FileInputStream(filename);
CRC32 crc32 = new CRC32();
CheckedInputStream checkedinputstream = new CheckedInputStream(fileinputstream, crc32);
byte data[] = new byte[DATA_BUFFER];
while (checkedinputstream.read(data, 0, DATA_BUFFER)!=-1){}
code = Long.toHexString(crc32.getValue());
} catch (Exception e) {
e.printStackTrace();
}
return code;
}
/**
* 压缩文件,只处理一层目录,不处理多层目录。
*
* @param srcdir
* @param filename
*/
public static void zip(String srcdir, String filename) {
try {
//如果目录不存在,创建目录
String filepath = FilenameUtils.getFullPath(filename);
File zippath = new File(filepath);
if (!zippath.exists())
zippath.mkdirs();
ZipOutputStream out = new ZipOutputStream(new DataOutputStream(
new FileOutputStream(filename)));
subzip(srcdir, "", out);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 递归处理多级目录。
*
* @param srcdir
* @param subdir
* @param out
* @throws Exception
*/
private static void subzip(String srcdir, String subdir, ZipOutputStream out)
throws Exception {
subdir = subdir.equals("") ? ""
: (subdir.startsWith(File.separator) ? subdir : File.separator
+ subdir);
File dirfile = new File(srcdir + subdir);
// System.out.println(srcdir+subdir);
String[] files = dirfile.list();
String subname = "";
for (int i = 0; i < files.length; i++) {
subname = srcdir + subdir + File.separator + files[i];
if (new File(subname).isDirectory()) {
subzip(srcdir, subdir + File.separator + files[i], out);
} else {
BufferedInputStream in = new BufferedInputStream(
new FileInputStream(subname), DATA_BUFFER);
out.putNextEntry(new ZipEntry((subdir.equals("") ? "" : (subdir
.startsWith(File.separator) ? subdir.substring(1,
subdir.length())
+ File.separator : subdir + File.separator))
+ files[i]));
int count;
byte data[] = new byte[DATA_BUFFER];
while ((count = in.read(data, 0, DATA_BUFFER)) != -1) {
out.write(data, 0, count);
}
in.close();
}
}
}
/**
* 解压缩文件。
*
* @param filename
* @param destdir
*/
public static void unzip(String filename, String destdir) {
try {
BufferedOutputStream dest = null;
BufferedInputStream is = null;
ZipEntry entry;
ZipFile zipfile = new ZipFile(filename);
Enumeration e = zipfile.entries();
while (e.hasMoreElements()) {
entry = (ZipEntry) e.nextElement();
// System.out.println("Extracting: " + entry);
is = new BufferedInputStream(zipfile.getInputStream(entry));
int count;
byte data[] = new byte[DATA_BUFFER];
// 检查目录,强制建立。
String zipedfilename = destdir + File.separator
+ entry.getName();
String zipedfilepath = FilenameUtils.getFullPath(zipedfilename);
File zipedpath = new File(zipedfilepath);
if (!zipedpath.exists())
zipedpath.mkdirs();
FileOutputStream fos = new FileOutputStream(zipedfilename);
dest = new BufferedOutputStream(fos, DATA_BUFFER);
while ((count = is.read(data, 0, DATA_BUFFER)) != -1) {
dest.write(data, 0, count);
}
dest.flush();
dest.close();
is.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}smartupload.jar放的路径到底是什么?
1. 不用把jar文件里面的Class解压到WEB-INF/classes,先把这些删除了吧。
2. 下载servletAPI.jar
3. 设置你的在eclipse中,ClassPath。
JspSmartUpload上传组件有哪些特点
SmartUpload 是一个免费的上传下载组件,好像早已经停止开发了。
SmartUpload.jar:我找到的最好的一个jar包,对于编码为GBK的,完全支持中文名文件的上传与下载;但对于UTF-8的,中文名上传可以,但中文名下载还是乱码。
这个组件,小项目用用还行,对于大项目,不建议使用。
比较常用的有mons-fileupload等,而且许多框架都集成了上传下载功能,如Struts 1/ Struts 2
另外,注意一点:由于smartupload是把文件全部缓存到内存里,所以上传大文件或多文件时就有可能出错,建议一般不要超过20M,个数也不要太多如何使用jspsmartupload
jspSmartUpload太小巧,问题很多,代码共享者很早就没有再维护次小项目,建议用monupload. 下载文件不用任何组件也可以,你只要给出正确的mime type即可。
为什么使用smartupload执行上传保存操作时用这句smart.save("upload")失败用smart.save("/upload")成功
你好,smart.save(“”)方法是将文件保存到指定目录,upload 表示当前请求文件的相对路径,/upload是表示web应用根目录下的upload目录。
只要能找到upload目录都是可以的。
hostodo从2014年年底运作至今一直都是走低价促销侧率运作VPS,在市场上一直都是那种不温不火的品牌知名度,好在坚持了7年都还运作得好好的,站长觉得hostodo还是值得大家在买VPS的时候作为一个候选考虑项的。当前,hostodo有拉斯维加斯和迈阿密两个数据中心的VPS在促销,专门列出了2款VPS给8T流量/月,基于KVM虚拟+NVMe整列,年付送DirectAdmin授权(发ticket...
a400互联是一家成立于2020年商家,主营美国机房的产品,包括BGP线路、CN2 GIA线路的云服务器、独立服务器、高防服务器,接入线路优质,延迟低,稳定性高,额外也还有香港云服务器业务。当前,全场服务器5折,香港VPS7折,洛杉矶VPS5折,限时促销!A400互联官网:https://a400.net/优惠活动全场独服永久5折优惠(续费同价):0722香港VPS七折优惠:0711洛杉矶VPS五...
传统农历新年将至,国人主机商DogYun(狗云)发来了虎年春节优惠活动,1月31日-2月6日活动期间使用优惠码新开动态云7折,经典云8折,新开独立服务器可立减100元/月;使用优惠码新开香港独立服务器优惠100元,并次月免费;活动期间单笔充值每满100元赠送10元,还可以参与幸运大转盘每日抽取5折码,流量,余额等奖品;商家限量推出一款年付特价套餐,共100台,每个用户限1台,香港VPS年付199元...
smartupload为你推荐
诺诺云代账上海的亮证节有讲到诺诺云代账,产品如何?策略组组策略是什么?最开放的浏览器用的最多的三个浏览器是?云图片简单易学画的云彩图片网关和路由器的区别网关和路由器的区别是什么tvosTVOS系统是什么?jdk6java—JDK6,在SUN公司官网下载的链接,天融信防火墙都说天融信的产品不错,那天融信的下一代防火墙真的是当今最好的防火墙产品了吗?jql建筑设计图纸上JQL 梁,是不是地下正负零基础梁?急急!丁奇请全面剖析一下黑胡子丁奇这个人物。
本网站服务器在美国维护 新世界机房 site5 bluevm linkcloud 主机屋免费空间 最好看的qq空间 智能骨干网 双拼域名 泉州电信 网站卫士 gtt 阿里云免费邮箱 开心online google搜索打不开 香港ip 镇江高防服务器 第八届中美互联网论坛 neobux 国外bt网站 更多