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目录都是可以的。
A400互联怎么样?A400互联是一家成立于2020年的商家,A400互联是云服务器网(yuntue.com)首次发布的云主机商家。本次A400互联给大家带来的是,全新上线的香港节点,cmi+cn2线路,全场香港产品7折优惠,优惠码0711,A400互联,只为给你提供更快,更稳,更实惠的套餐,香港节点上线cn2+cmi线路云服务器,37.8元/季/1H/1G/10M/300G,云上日子,你我共享。...
digital-vm在日本东京机房当前提供1Gbps带宽、2Gbps带宽、10Gbps带宽接入的独立服务器,每个月自带10T免费流量,一个独立IPv4。支持额外购买流量:20T-$30/月、50T-$150/月、100T-$270美元/月;也支持额外购买IPv4,/29-$5/月、/28-$13/月。独立从下单开始一般24小时内可以上架。官方网站:https://digital-vm.com/de...
萤光云怎么样?萤光云是一家国人云厂商,总部位于福建福州。其成立于2002年,主打高防云服务器产品,主要提供福州、北京、上海BGP和香港CN2节点。萤光云的高防云服务器自带50G防御,适合高防建站、游戏高防等业务。目前萤光云推出北京云服务器优惠活动,机房为北京BGP机房,购买北京云服务器可享受6.5折优惠+51元代金券(折扣和代金券可叠加使用)。活动期间还支持申请免费试用,需提交工单开通免费试用体验...
smartupload为你推荐
akf德州水份检测仪价格,AKF系列卡尔费休水份测定仪和世界顶级进口品牌相比怎么样?rbf神经网络RBF神经网络和BP神经网络有什么区别foxmail邮箱注册如何注册FOXMAIL邮箱的帐号啊?rdl电脑主机上的dvd+rdl是什么意思电子日历怎样调整电子日历上的时间arc是什么意思数学中的arctan是什么意思inode智能客户端inode智能客户端怎么使用wifi?flowplayer如何编译flowplayer源码spawningvc出现error spawning c1.exe怎么解决?php论坛怎样快速在个人电脑上建立一个自己的PHP论坛服务器?
虚拟主机管理系统 免费cn域名注册 lamp namecheap 免备案cdn 腾讯云数据库 parseerror 一元域名 howfile 秒杀汇 静态空间 nerds 网络空间租赁 789电视剧 最漂亮的qq空间 视频服务器是什么 114dns xuni 网站加速 网络速度 更多