1、try com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0); if (myFile.isMissing()%请先选择要上传的文件% else /String myFileName=myFile.getFileName(); /取得上载的文件的文件名 ext= myFile.getFileExt(); /取得后缀名 int file_size=myFile.getSize(); /取得文件的大小 String saveurl= if(file_sizeold_h) tempdouble=old_w/tagsi
2、ze; else tempdouble=old_h/tagsize; new_w=Math.round(old_w/tempdouble); new_h=Math.round(old_h/tempdouble);/计算新图长宽 BufferedImage tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB); tag.getGraphics().drawImage(src,0,0,new_w,new_h,null); /绘制缩小后的图 FileOutputStream newimage=new FileOutputStr
3、eam(newurl); /输出到文件流 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage); encoder.encode(tag); /近JPEG编码 newimage.close(); out.print(SCRIPT language=javascriptalert(上传文件大小不能超过+(file_size_max/1000)+Kwindow.location=upfile.jsp;/SCRIPTcatch (Exception e)e.toString();2 upload.htmhtmlheadtitl
4、e请选择上传的图片/headbodytable border=0 align=center cellpadding= cellspacing=trtd height=45 valign=middleform action=uploadimage.jsp method=post enctype=multipart/form-data name=form1请选择上传的图片input type=filesubmitSubmit value=上传/form/td/tr/table/body/html 二也谈一下文件上传在这里看到很多讨论文件上传的文章,觉得各有利敝,有些只限于上传文件,而不能同时取得文
5、本字段值,尤其是上传多个文件比较少,现本人做这个上传文件的类最多可支持上传255个文件,同时可取得文本字段值,请各位高手指正.文件上传类:MoqUploadBean.javapackagenet.jspcn.tool;importjava.io.*;java.util.*;javax.servlet.*;javax.servlet.http.*;/*Title:文件上传类Description:既能对文件进行上传,又能取得输入框的值,最多可同时上传255个文件Copyright:Copyright(c)2002Company:Teksonauthor莫琼version1.0*/publiccl
6、assUploadBeanprivateStringsourceFile=newString255;/源文件名suffix/文件后缀名StringcanSuffix.gif.jpg.jpeg.png/可上传的文件后缀名objectPathc:/目标文件目录objectFileName/目标文件名ServletInputStreamsisnull;/输入流description/描述状态longsize1001024;/限制大小intcount0;/已传输文件数目bytebbyte4096;/字节流存放数组booleansuccessfultrue;HashtablefieldsHashtabl
7、e();UploadBean()/设置上传文件的后缀名voidsetSuffix(StringcanSuffix)this.canSuffixcanSuffix;/设置文件保存路径setObjectPath(StringobjectPath)this.objectPathobjectPath;setSize(longmaxSize)this.sizemaxSize;/文件上传处理程序setSourceFile(HttpServletRequestrequest)throwsIOExceptionrequest.getInputStream();akswhile(asis.readLine(b,
8、0,b.length)!-1)String(b,a);if(ks.indexOf(filename=)/取得文件数据s.substring(k+10);s.substring(0,k);sourceFilecounts;s.lastIndexOf(suffixcount1);(canTransfer(count)transferFile(count);+count;elsename=普通表单输入元素,获取输入元素名字fieldNames.substring(k+6,s.length()-3);b.length);StringBufferfieldValueStringBuffer(b.leng
9、th);a-2);(b0=45)&(b1(b2(b3(b445)break;fieldValue.append(s);fields.put(fieldName,fieldValue.toString();(!successful)/取得表单元素值getFieldValue(StringfieldName)(fieldsnull|null)return(String)fields.get(fieldName);/取得上传文件数getCount()count;/取得目标路径getObjectPath()/取得源文件名getSourceFile()sourceFile;/取得目标文件名getObje
10、ctFileName()objectFileName;/取得上传状态描述getDescription()description;/判断上传文件的类型canTransfer(inti)suffixisuffixi.toLowerCase();/这个是用来传图片的,各位可以把后缀名改掉或者不要这个条件(sourceFilei.equals()(canSuffix.indexOf(+suffixi)=0)descriptioniERR:Fileiswrong.false;/上传文件转换transferFile(intxLong.toString(newjava.util.Date().getTime
11、();tryobjectFileNameisuffixi;FileOutputStreamoutFileOutputStream(objectPathobjectFileNamei);hastransfered/标示已经传输的字节数Content-Type:out.write(b,+=a;(hastransferedsize)descriptioncountThefile+toolargetotransfer.wholeprocessinterrupted.(successful)Right:hasbeentransferedsuccessfully.out.close();successfu
12、l)sis.close();tmpFile(objectPathobjectFileNamecount);tmp.delete();catch(IOExceptionioe)ioe.toString();staticmain(Stringargs)System.out.println(TestOK文件上传调用:MoqUpload.jsp%pagecontentType=charset=GB2312htmlheadtitle文件上载/title/headbodyformaction=MoqUploadSubmit.jspenctype=MULTIPART/FORM-DATAmethod=作者姓名:inputtype=textAuthor/br公司名称:Company文件描述:Comment选择文件1:filename1选择文件2:filename2选择文件3:filename3选择文件4:filename4value=上载/form/body/html文件上传提交:MoqUploadSubmit.jspjsp:useBeanid=fileBean