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目录都是可以的。
近日CloudCone发布了七月的特价便宜优惠VPS云服务器产品,KVM虚拟架构,性价比最高的为2核心1.5G内存1Gbps带宽5TB月流量,2.89美元/月,稳定性还是非常不错的,有需要国外便宜VPS云服务器的朋友可以关注一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2017年的美国服务器提供商,国外实力大厂,自己开...
spinservers是一家主营国外服务器租用和Hybrid Dedicated等产品的商家,Majestic Hosting Solutions LLC旗下站点,商家数据中心包括美国达拉斯和圣何塞机房,机器一般10Gbps端口带宽,且硬件配置较高。目前,主机商针对达拉斯机房机器提供优惠码,最低款Dual E5-2630L v2+64G+1.6TB SSD月付89美元起,支持PayPal、支付宝等...
Pia云这个商家的云服务器在前面也有介绍过几次,从价格上确实比较便宜。我们可以看到最低云服务器低至月付20元,服务器均采用KVM虚拟架构技术,数据中心包括美国洛杉矶、中国香港、俄罗斯和深圳地区,这次春节活动商家的活动力度比较大推出出全场6.66折,如果我们有需要可以体验。初次体验的记得月付方案,如果合适再续约。pia云春节活动优惠券:piayun-2022 Pia云服务商官方网站我们一起看看这次活...
smartupload为你推荐
元数据管理请问metadata是什么意思?settimerMFC 中,全局SetTimer函数怎么用?知识库管理系统知识库管理软件与档案管理软件有什么区别策略组简述组策略的概念 急急急溢出隐藏overflow:hidden:溢出隐藏了。deviceid怎么能知道安卓系统手机的DEVICE ID?tvos智能电视都什么功能被广电封杀了?jqlJQL JINQILIN注册过商标吗?还有哪些分类可以注册?丁奇王下七武海和四皇分别是谁?丁奇海贼王里“D”的意思是什么?
长春域名注册 vps是什么意思 域名交易网 vir GGC locvps 远程登陆工具 免费静态空间 好看的桌面背景图 e蜗牛 双拼域名 日本bb瘦 国外代理服务器软件 免费美国空间 电信虚拟主机 群英网络 江苏双线 双十二促销 winserver2008r2 优惠服务器 更多