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目录都是可以的。
VoLLcloud LLC是一家成立于2020年12月互联网服务提供商企业,于2021年1月份投入云计算应用服务,为广大用户群体提供云服务平台,已经多个数据中心部署云计算中心,其中包括亚洲、美国、欧洲等地区,拥有自己的研发和技术服务团队。现七夕将至,VoLLcloud LLC 推出亚洲地区(香港)所有产品7折优惠,该产品为CMI线路,去程三网163,回程三网CMI线路,默认赠送 2G DDoS/C...
LOCVPS(全球云)发布了新上韩国机房KVM架构主机信息,提供流量和带宽方式,适用全场8折优惠码,优惠码最低2G内存套餐月付仅44元起。这是一家成立较早的国人VPS服务商,目前提供洛杉矶MC、洛杉矶C3、和香港邦联、香港沙田电信、香港大埔、日本东京、日本大阪、新加坡、德国和荷兰等机房VPS主机,基于KVM或者XEN架构。下面分别列出几款韩国机房KVM主机配置信息。韩国KVM流量型套餐:KR-Pl...
CheapWindowsVPS是一家成立于2007年的老牌国外主机商,顾名思义,一个提供便宜的Windows系统VPS主机(同样也支持安装Linux系列的哈)的商家,可选数据中心包括美国洛杉矶、达拉斯、芝加哥、纽约、英国伦敦、法国、新加坡等等,目前商家针对VPS主机推出5折优惠码,优惠后最低4GB内存套餐月付仅4.5美元。下面列出几款VPS主机配置信息。CPU:2cores内存:4GB硬盘:60G...
smartupload为你推荐
adversary英语match,是什么意思.?知识库管理系统销售易CRM知识库,这是干什么用的?策略组组策略是什么,命令是什么???策略组电脑组策略详解qq号查询现成的qq号和密码查询tvosios,tvos,watchos和os x的区别天融信防火墙笔记本怎么登陆天融信防火墙spawning急救!编好C++程序后(确认无误),再编译时总出现error spawning 是什么意思?是不是系统出了问题faq是什么意思fans是什么意思?51信用卡论坛51信用卡贷了1200 现在还不上怎么办
上海服务器租用 国际域名抢注 购买域名和空间 国内免备案主机 主机点评 59.99美元 idc评测网 wdcp win8升级win10正式版 国外网站代理服务器 有奖调查 广州服务器 服务器干什么用的 免费dns解析 ca187 腾讯总部在哪 空间登陆首页 starry 我的世界服务器ip 广州虚拟主机 更多