- 浏览: 5819418 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
html:
java:
<script> function changeFileInput(){ var num=$("fileSelect").value; while($("files").childNodes.length>0){ $("files").removeChild($("files").childNodes[0]); } for(var i=0;i<num;i++){ filediv=document.createElement("div"); file=document.createElement("input"); file.type="file"; file.name="file"+i; file.size="50"; filediv.appendChild(file); $("files").appendChild(filediv); } } </script> <td class="td_right"> <div id="files"> <html:file property="file" value="浏览..." size="50" onkeypress="event.returnValue=false;" ></html:file><br /> </div> <html:select property="fileSelect" size="1" onchange="changeFileInput()"> <html:option value="1">1</html:option> <html:option value="2">2</html:option> <html:option value="3">3</html:option> <html:option value="4">4</html:option> <html:option value="5">5</html:option> </html:select> <input title="上传图片" class="button_y" name="upload" onclick="" type="submit" value="上传图片"><span class="xing">图片小于65k</span> <html:errors/> <a href="ledger.portal?action=download&id=fieldId">下载</a> <input title="图片管理" class="button_y" name="imageManage" onclick="" type="submit" value="图片管理"> </td> </tr>
java:
if(request.getParameter("upload")!=null){ System.out.println("---------------------upload---------------------"); // struts多文件上传,JSP中<html:file>的property必须不一样! System.out.println("----------多文件上传开始-------------"); String realPath=this.getServlet().getServletContext().getRealPath("/"); if(realPath.endsWith("./")){//linux外网访问多了./ why??? realPath=realPath.substring(0, realPath.length()-2); } String uploadPath = realPath + "UserFiles"+File.separator+"Image"; //上传文件存放目录 System.out.println("loadpath="+uploadPath); List<String> list = new ArrayList<String>(); list.add("jpg"); list.add("jpeg"); list.add("gif"); list.add("bmp"); list.add("png"); Hashtable hash=ledgerForm.getMultipartRequestHandler().getFileElements();//获得FormFile的数目,注意JSP中<html:file>的property System.out.println("hash.size="+hash.size()); int i=0; for (Enumeration e = hash.keys(); e.hasMoreElements(); ) { String key = (String) e.nextElement(); FormFile formfile = (FormFile) hash.get(key); String fileName = formfile.getFileName().trim(); //文件名 String contentType=formfile.getContentType(); long size=formfile.getFileSize(); String extName=fileName.substring(fileName.lastIndexOf(".")+1).toLowerCase(); if(fileName==null||fileName.equals("")){//防没有文件时上传垃圾文件的bug System.out.println("文件名为空,跳出循环!"); initNewsList(mapping,ledgerForm,request,response); return mapping.findForward("management"); } if(!list.contains(extName)){ errors.add("error.image.contentType", new ActionMessage("error.image.contentType")); this.saveErrors(request, errors); // initNewsList(mapping,ledgerForm,request,response); // return mapping.findForward("management"); System.out.println("上传文件中有不符合扩展名要求的文件("+fileName+"),继续下一个上传文件..."); continue;//扩展名不符合要求就跳过他 } if(size>=1024*65){//65k errors.add("error.image.size", new ActionMessage("error.image.size")); this.saveErrors(request, errors); // initNewsList(mapping,ledgerForm,request,response); // return mapping.findForward("management"); System.out.println("上传文件中有不符合大小要求的文件("+fileName+"),继续下一个上传文件..."); continue;//文件大小不符合要求就跳过他 } Date date = new Date(System.currentTimeMillis()); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); String newFileName= format.format(date)+"_"+i+"."+extName; i++; if (!"".equals(fileName)) { //不同的浏览器传上的文件名可能有区别,有的是全路径的 InputStream is = formfile.getInputStream(); OutputStream os = new FileOutputStream(uploadPath+File.separator+newFileName); int bytesRead = 0; byte[] buffer = new byte[8192]; while ((bytesRead = is.read(buffer, 0, 8192)) != -1) { os.write(buffer, 0, bytesRead); } os.close(); is.close(); } //////////////////////////////////// System.out.println("--------------图片放大缩小开始----------------"); String tempPath = realPath + "UserFiles"+File.separator+"temp"; //上传文件存放目录 int w=96; int h=-20; if(extName.equals("gif")){//解决生成gif图像时大小为0的bug extName="png"; } String oldPath=uploadPath+File.separator+newFileName;//Image文件夹 String newPath=tempPath+File.separator+newFileName;//temp文件夹 try{ Util.resize(oldPath, w, h, newPath, extName);// 图片放大缩小 }catch (Exception ex) { // TODO: handle exception System.out.println("出现异常时将原图直接写入temp文件夹,不要缩略了"); InputStream is = formfile.getInputStream(); OutputStream os = new FileOutputStream(newPath); int bytesRead = 0; byte[] buffer = new byte[8192]; while ((bytesRead = is.read(buffer, 0, 8192)) != -1) { os.write(buffer, 0, bytesRead); } os.close(); is.close(); Util.imageWidth=96;//异常时,当作96像素 Util.imageHeight=96; } System.out.println("--------------图片放大缩小结束----------------"); /////////////////////////////////////////////////// System.out.println("--------------保存缩略图/原图开始----------------"); ImageManage imageManage=new ImageManage(); imageManage.setDate(Util.getCurrentDate("yyyyMMddhhmmss")); imageManage.setImageName(newFileName);//缩略图名=原图名,只是文件夹不一样 imageManage.setUser(Util.userName); imageManage.setRemark("0"); imageManage.setWidth(Util.imageWidth);//保存图片宽高 imageManage.setHeight(Util.imageHeight); this.getLedgerService().save(imageManage); System.out.println("--------------保存缩略图/原图结束----------------"); } // hash.clear(); System.out.println("----------多文件上传结束-------------"); ledgerForm.setFileSelect("1"); initNewsList(mapping,ledgerForm,request,response); return mapping.findForward("management"); }
发表评论
-
PropertyMessageResources实现本地化
2010-03-01 12:16 2818public org.apache.struts.util.P ... -
在Struts1.x中使用net.sf.struts.saif.SAIFSpringPlugin配置Interceptor(拦截器)
2010-01-21 11:05 3939几个月前,Struts2发布,这个版本较struts1.x ... -
登录时“记住用户名”
2010-01-14 14:42 9456登录时需要用户“记住 ... -
权限控制
2009-12-29 14:34 2925很多时候不同的人拥有不同的权限,不同的人拥有不同的菜单。 那怎 ... -
导出数据到Excel
2009-08-12 09:46 2020HSSFWorkbook wb = new HSSFWor ... -
socket发送数据
2009-08-12 09:40 1774String date = request.getPara ... -
ActionMessages的使用&cookies操作验证码
2009-08-11 15:55 1879ActionMessages errors = new Act ... -
<html:select>的使用
2009-08-11 15:34 2943一般使用: <html:select property= ... -
比较笨的分页方法
2009-08-11 12:20 1822Java: sql += " order b ... -
使用<bean:define >取到bean:write的值,并赋值给java变量
2009-08-11 12:15 7966<logic:iterate id="it ... -
<bean:write> 用法
2009-08-11 11:55 12068bean:write相当于<%=reques ... -
注册的在线人数/统计在线人数/网站总访问量
2009-08-05 17:24 2878java LoginAction: request.getSe ... -
调用外部程序的方法
2009-08-03 17:29 2321if("calculator".equal ... -
下载文件
2009-08-03 16:10 1952if("download".equals( ... -
把图片写入数据库
2009-08-03 16:05 2135System.out.println("====== ... -
POI导出到Excel
2009-08-03 14:33 2169if (billForm.getButtonName() != ... -
对账文件导出
2009-08-03 14:27 2235if ("datafile".equals ... -
用户登录完整代码
2009-08-03 11:45 2778java action: LoginForm form=(Lo ... -
验证码
2009-08-03 11:37 1814生成验证码图片的Servlet类 import java. ... -
创建session
2009-08-03 11:04 3227java action: HttpSession sessio ...
相关推荐
- 调用这个类库可能涉及实例化对象、设置参数(如源图片路径、目标尺寸)并调用生成缩略图的方法。 通过理解以上知识点,开发者可以有效地利用这个类库生成所需的图片缩略图,提高开发效率。在实际项目中,还需要...
本主题涉及的是利用C#进行图片批量操作的代码实现,包括图片文件的改名、替换文件名以及生成缩略图等核心功能。这些功能在日常的图像管理、网站开发或图像处理软件中非常常见。 1. 图片文件改名: 在C#中,我们...
在Java Web开发中,JSP(JavaServer Pages)是一种常用的动态网页技术,它允许开发者将HTML代码与Java代码结合在一起,以...在实际项目中,还可能需要集成数据库存储、图片缩略图生成、CDN分发等功能,以满足更多需求。
9. **图片处理**:如果仅允许上传图片,可能需要检查文件是否为有效的图像格式,并可能进行缩略图生成、尺寸调整等图像处理操作。 10. **日志记录**:记录上传活动可以帮助调试和监控系统,防止滥用或异常行为。 ...
她能轻易的生成缩略图,调整尺寸、转换格式、添加水印一步到位!向导式的操作方式,轻易上手,而功能丝毫不减。所有的批处理操作都可以应用图像脚本处理命令,再复杂的操作也可以一步到位。而且所有这些功能,您都...
1.生成缩略图的类文件SmallImage 一个把图片生成缩略图的类,可以设置大小,非常好用,希望大家喜欢哦。 C#基础类库 1.Chart图形 Assistant创建显示图像的标签和文件 OWCChart统计图的封装类 2.Cookie&Session&...
能轻易的生成缩略图,调整尺寸、转换格式、添加水印一步到位!向导式的操作方式,轻易上手。所有的批处理操作都可以应用图像脚本处理命令,再复杂的操作也可以一步到位。 淘淘图片批处理之星能为您做什么? ...
它可能包含了用户注册、登录、上传图片、管理图片、生成缩略图等功能。 【描述】"基于PHP的CFImagehost简繁汉化版源码.zip" 暗示这是一个压缩文件,其中包含了完整的源代码,以及可能的配置文件、数据库脚本和文档...
10、增加前台界面可选是否生成缩略图选顶!不用多说了吧! 11、新增也是我认为很有用的一个功能,即远程获取图片时的高宽限制功能,后台可以设置 本意是相通过简单的asp语言来实现获取远程图片高宽的,但是发现没...
不推荐使用此方法,因为上传一张图片会同时生成三张尺寸不一的缩略图,浪费空间,也不利于以后的管理。 2. 直接获取日志中插入的第一张图片作为缩略图,优点:支持外链,使用方便,缺点:无裁剪,插入日志中的图片...
缩略图自动生成. 8.可自行设置图片是否加水印. 9.支持图片,附件防盗链. 10.支持站内关键字. 11.类似资源管理器的网站文件管理(支持文件,目录的创建,改名,移动,删除...等等) 12.支持自定义文档...
06、案例图片:图片系统支持企业上传成千上万的案例、图片、企业风采照片等,可详细介绍案例情况,支持上传缩略图、大图;07、下载中心:企业专用资料下载基地,提供驱动、说明文档、常用软件等各类技术资料的下载,...
5. **图像处理**:如果项目涉及到图片缩略图生成、格式转换等功能,可能使用了GD库或Imagick扩展,它们提供了一系列图像处理函数。 6. **文件上传**:PHP的`$_FILES`全局变量和`move_uploaded_file`函数用于处理...
ImageUpload 图片上传并进行缩略图处理 24.网络 NetHelper 25.文件操作类 DirFileHelper FileOperateHelper INIFile 26.序列化 Serialize 序列化帮助类,还有例子 SerializeHelper 序列化帮助类,Xml序列化,...
5. **图像处理库**:如GD库或Imagick,用于处理上传的图片,如缩略图生成。 6. **框架或库**:NoBullshPHP的相关文件,可能包括核心库、控制器、模型、视图等。 7. **其他辅助文件**:如README、LICENSE、CHANGELOG...
这通常通过生成文件的缩略图或者流式传输一部分文件内容实现。在AndServer中,开发者可能需要集成额外的库来支持不同类型的媒体文件预览,并确保预览过程既快速又流畅。 【AndServer_Server_shezep】可能是开发者...
生成缩略图:需 AspJpeg 组件; Email发送:需 JMail邮件 组件; 文章采集:需 Microsoft.XMLHTTP 组件; 如果您有自己的服务器,或要进行本地调试;运行环境配置相关文件可以网上查找下载(一般电脑除了AspJpeg ...
在技术层面上,这可能涉及到前端与后端的交互,如使用Ajax技术进行异步更新,数据库操作来存储和检索图片信息,以及可能的图像处理技术,如缩略图生成、图像质量优化等。 多国语言支持则意味着 Photokorn Gallery ...
25.上传的图片如果太大,可自动生成缩略图. 26.上传的图片如果非GIF,jpg,png等浏览器直接支持显示的格式,自动生成一幅缩略显示,并作链接 27.上传方式可以选择是否采用DotNet上传功能(支持上传最大4M的文件) 28.可...