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目录都是可以的。
古德云(goodkvm)怎么样?古德云是一家成立于2020年的商家,原名(锤子云),古德云主要出售VPS服务器、独立服务器。古德云主打产品是香港cn2弹性云及美西cn2云服务器,采用的是kvm虚拟化构架,硬盘Raid10。目前,古德云香港沙田cn2机房及美国五星级机房云服务器,2核2G,40G系统盘+50G数据盘,仅35元/月起,性价比较高,可以入手!点击进入:古德云goodkvm官方网站地址古德...
之前分享过很多次CloudCone的信息,主要是VPS主机,其实商家也提供独立服务器租用,同样在洛杉矶MC机房,分为两种线路:普通优化线路及CN2 GIA,今天来分享下商家的CN2 GIA线路独立服务器产品,提供15-100Mbps带宽,不限制流量,可购买额外的DDoS高防IP,最低每月82美元起,支持使用PayPal或者支付宝等付款方式。下面分享几款洛杉矶CN2 GIA线路独立服务器配置信息。配...
10GBIZ服务商经常有看到隔壁的一些博客分享内容,我翻看网站看之前有记录过一篇,只不过由于服务商是2020年新成立的所以分享内容比较谨慎。这不至今已经有将近两年的服务商而且云服务产品也比较丰富,目前有看到10GBIZ服务商有提供香港、美国洛杉矶等多机房的云服务器、独立服务器和站群服务器。其中比较吸引到我们用户的是亚洲节点的包括香港、日本等七星级网络服务。具体我们看看相关的配置和线路产品。第一、香...
smartupload为你推荐
settimerMFC 中,全局SetTimer函数怎么用?知识库管理系统知识库管理软件与档案管理软件有什么区别jdk6java—JDK6,在SUN公司官网下载的链接,inode智能客户端win7如何使用校园网iNode智能客户端保留两位有效数字什么叫保留两位有效数字数秦科技天津数沃科技公司怎么样?待遇和发展如何?有人知道么?flowplayer如何编译flowplayer源码菜霸保险是传销吗?toolstrip工具栏ToolStrip中图标的大小怎么改变酷源码酷我音乐音乐源文件在哪
北京域名注册 长沙服务器租用 国外免费vps 免费com域名申请 中国万网域名 com域名抢注 全球付 谷歌香港 外国空间 华为4核 服务器干什么用的 1美金 paypal注册教程 国外视频网站有哪些 1美元 阿里云个人邮箱 最新优惠 symantec 美国西雅图独立 vim 更多