1. 如何用fileupload上传文件
/// <summary>上传文件方法 /// 返回文件名 /// </summary> /// <param name="myFileUpload">上传控件ID</param> /// <param name="allowExtensions">允许上传的扩展文件名类型,如:string[] allowExtensions = { ".doc", ".xls", ".ppt", ".jpg", ".gif" };</param> /// <param name="maxLength">允许上传的最大大小,以M为单位</param> /// <param name="savePath">保存文件的目录,注意是绝对路径,如:Server.MapPath("~/upload/");</param> public static string Upload(FileUpload myFileUpload, string[] allowExtensions, int maxLength, string savePath) { // 文件格式是否允许上传 bool fileAllow = false; //检查是否有文件案 if (myFileUpload.HasFile) { // 检查文件大小, ContentLength获取的是字节,转成M的时候要除以2次1024 if (myFileUpload.PostedFile.ContentLength / 1024 / 1024 >= maxLength) { throw new Exception("只能上传小于" + maxLength + "M的文件!"); } //取得上传文件之扩展文件名,并转换成小写字母 string fileExtension = System.IO.Path.GetExtension(myFileUpload.FileName).ToLower(); string tmp = ""; // 存储允许上传的文件后缀名 //检查扩展文件名是否符合限定类型 for (int i = 0; i < allowExtensions.Length; i++) { tmp += i == allowExtensions.Length – 1 ? allowExtensions[i] : allowExtensions[i] + ","; if (fileExtension == allowExtensions[i]) { fileAllow = true; } } if (fileAllow) { try { string datedir = DateTime.Now.ToString("yyyyMMdd"); if (!Directory.Exists(savePath + datedir)) { Directory.CreateDirectory(savePath + datedir); } string saveName = Guid.NewGuid() + fileExtension; string path = savePath + datedir + "/" + saveName; //存储文件到文件夹 myFileUpload.SaveAs(path); return datedir + "/" + saveName; } catch (Exception ex) { throw new Exception(ex.Message); } } else { throw new Exception("文件格式不符,可以上传的文件格式为:" + tmp); } } else { throw new Exception("请选择要上传的文件!"); } } 调用: try { string proimg = Niunan.Shop.Utility.Tool.Upload(fuimg, new string[] { ".jpg", ".gif", ".png" }, 3, Server.MapPath("~/upload/")); } catch (Exception ex) { Response.Write(ex.Message); }
2. 关于FileUpload控件上传文件大小限制问题
默认上传复文件大小4096KB,如果要上制传超过此大小的文件,会出现错误界面。可以对web.config文件做一下配置,就可以解决,解决方法如下:
1、首先创建一个名称为 file_value 的html文件。
3. 如何利用FileUpload上传文件,并且能下载。
C#.Net 上传图片,限制图片大小,检查类型完整版 http://www.csframework.com/archive/2/arc-2-20110716-1727.htmAsp.Net FileUpload类实现上传文件(C/S框架网开源) http://www.csframework.com/archive/7/arc-7-20110317-1150.htm
4. 用fileupload控件上传文件怎样使上传的文件显示在指定的位置
protected string ImageBind() { bool flag = false; string ss=""; string strPath = Server.MapPath("Image");//在aspx文件相对路径 Image文件 if (上传控件名称.FileName.Trim() == "") { Response.Write("<script>alert('请上传图片!');</script>"); return false; } #region 验证上传的图片格式是jpg,gif,png,bmp等几种格式 if (上传控件名称.HasFile) { string strFileExten = System.IO.Path.GetExtension(上传控件名称.FileName).ToLower().Trim(); string[] extFile = { ".jpg",".gif",".png",".bmp" }; for (int i = 0; i < extFile.Length; i++) { if (strFileExten == extFile[i]) flag = true; } } #endregionif (flag)//是图片格式 { string time = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + System.IO.Path.GetExtension(ful.FileName).ToLower().Trim(); 上传控件名称.SaveAs(strPath + "\\" + time);//防止文件名一样 ss = strPath + "\\" + time; flag=true; } else { Response.Write("<script>alert('上传图片格式不正确!!');</script>"); flag=false; } return ss; }然后直接去路径url=ImageBind();
5. fileupload上传文件是临时文件怎么删除的
去数据库查可以做个批量清理的小程序,把所有上传的图片,都存在数据库里,然后遍历上传的这个目录,读取到文件名以后,要是不存在的话
6. java怎么用commons-fileupload实现上传文件
文件上传步骤:1.导入jar包common-fileupload.jarcommon-io.jar2.上传jsp页面编辑<body><formaction="${pageContext.request.contextPath}/servlet/UploadHandleServlet"enctype="multipart/form-data"method="post">上传用户:<inputtype="text"name="username"><br/>上传文件1:<inputtype="file"name="file1"><br/>上传文件2:<inputtype="file"name="file2"><br/><inputtype="submit"value="提交"></form></body>3.消息提示页面(成功or失败)<body>${message}</body>4.处理文件上传的servlet编写importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.util.List;importjava.util.UUID;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.commons.fileupload.FileItem;importorg.apache.commons.fileupload.FileUploadBase;importorg.apache.commons.fileupload.ProgressListener;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;importorg.apache.commons.fileupload.servlet.ServletFileUpload;{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全StringsavePath=this.getServletContext().getRealPath("/WEB-INF/upload");//上传时生成的临时文件保存目录StringtempPath=this.getServletContext().getRealPath("/WEB-INF/temp");FiletmpFile=newFile(tempPath);if(!tmpFile.exists()){//创建临时目录tmpFile.mkdir();}//消息提示Stringmessage="";try{//使用Apache文件上传组件处理文件上传步骤://1、创建一个DiskFileItemFactory工厂DiskFileItemFactoryfactory=newDiskFileItemFactory();//设置工厂的缓冲区的大小,当上传的文件大小超过缓冲区的大小时,就会生成一个临时文件存放到指定的临时目录当中。factory.setSizeThreshold(1024*100);//设置缓冲区的大小为100KB,如果不指定,那么缓冲区的大小默认是10KB//设置上传时生成的临时文件的保存目录factory.setRepository(tmpFile);//2、创建一个文件上传解析器ServletFileUploapload=newServletFileUpload(factory);//监听文件上传进度upload.setProgressListener(newProgressListener(){publicvoipdate(longpBytesRead,longpContentLength,intarg2){System.out.println("文件大小为:"+pContentLength+",当前已处理:"+pBytesRead);/***文件大小为:14608,当前已处理:4096文件大小为:14608,当前已处理:7367文件大小为:14608,当前已处理:11419文件大小为:14608,当前已处理:14608*/}});//解决上传文件名的中文乱码upload.setHeaderEncoding("UTF-8");//3、判断提交上来的数据是否是上传表单的数据if(!ServletFileUpload.isMultipartContent(request)){//按照传统方式获取数据return;}//设置上传单个文件的大小的最大值,目前是设置为1024*1024字节,也就是1MBupload.setFileSizeMax(1024*1024);//设置上传文件总量的最大值,最大值=同时上传的多个文件的大小的最大值的和,目前设置为10MBupload.setSizeMax(1024*1024*10);//4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项List<FileItem>list=upload.parseRequest(request);for(FileItemitem:list){//如果fileitem中封装的是普通输入项的数据if(item.isFormField()){Stringname=item.getFieldName();//解决普通输入项的数据的中文乱码问题Stringvalue=item.getString("UTF-8");//value=newString(value.getBytes("iso8859-1"),"UTF-8");System.out.println(name+"="+value);}else{//如果fileitem中封装的是上传文件//得到上传的文件名称,Stringfilename=item.getName();System.out.println(filename);if(filename==null||filename.trim().equals("")){continue;}//注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如:c:a1.txt,而有些只是单纯的文件名,如:1.txt//处理获取到的上传文件的文件名的路径部分,只保留文件名部分filename=filename.substring(filename.lastIndexOf("\")+1);//得到上传文件的扩展名StringfileExtName=filename.substring(filename.lastIndexOf(".")+1);//如果需要限制上传的文件类型,那么可以通过文件的扩展名来判断上传的文件类型是否合法System.out.println("上传的文件的扩展名是:"+fileExtName);//获取item中的上传文件的输入流InputStreamin=item.getInputStream();//得到文件保存的名称StringsaveFilename=makeFileName(filename);//得到文件的保存目录StringrealSavePath=makePath(saveFilename,savePath);//创建一个文件输出流FileOutputStreamout=newFileOutputStream(realSavePath+"\"+saveFilename);//创建一个缓冲区bytebuffer[]=newbyte[1024];//判断输入流中的数据是否已经读完的标识intlen=0;//循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据while((len=in.read(buffer))>0){//使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath+"\"+filename)当中out.write(buffer,0,len);}//关闭输入流in.close();//关闭输出流out.close();//删除处理文件上传时生成的临时文件//item.delete();message="文件上传成功!";}}}catch(FileUploadBase.){e.printStackTrace();request.setAttribute("message","单个文件超出最大值!!!");request.getRequestDispatcher("/message.jsp").forward(request,response);return;}catch(FileUploadBase.SizeLimitExceededExceptione){e.printStackTrace();request.setAttribute("message","上传文件的总的大小超出限制的最大值!!!");request.getRequestDispatcher("/message.jsp").forward(request,response);return;}catch(Exceptione){message="文件上传失败!";e.printStackTrace();}request.setAttribute("message",message);request.getRequestDispatcher("/message.jsp").forward(request,response);}privateStringmakeFileName(Stringfilename){//2.jpg//为防止文件覆盖的现象发生,要为上传文件产生一个唯一的文件名returnUUID.randomUUID().toString()+"_"+filename;}privateStringmakePath(Stringfilename,StringsavePath){//得到文件名的hashCode的值,得到的就是filename这个字符串对象在内存中的地址inthashcode=filename.hashCode();intdir1=hashcode&0xf;//0–15intdir2=(hashcode&0xf0)>>4;//0-15//构造新的保存目录Stringdir=savePath+"\"+dir1+"\"+dir2;//upload23upload35if(!file.exists()){file.mkdirs();}returndir;}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doGet(request,response);}}5.编写web.xml文件(servlet的映射配置)<servlet><servlet-name>UploadHandleServlet</servlet-name><servlet-class>me.gacl.web.controller.UploadHandleServlet</servlet-class></servlet><servlet-mapping><servlet-name>UploadHandleServlet</servlet-name><url-pattern>/servlet/UploadHandleServlet</url-pattern></servlet-mapping>注:网上看到的,出处找不到了,望见谅!!
7. Java中fileupload上传文件的代码
private static DiskFileItemFactory factory;//获得磁盘文件条目工厂 private static ServletFileUpload upload;//文件上传处理类factory = new DiskFileItemFactory(); //获得磁盘文件条目工厂factory.setRepository(new File(config.getCache())); //创建缓存工厂factory.setSizeThreshold(1024*1024*2) ; //设置缓存区的大小upload = new ServletFileUpload(factory); //高水平的API文件上传处理 upload.setSizeMax(10 * 1024 * 1024);//设置文件上传的最大值upload.setFileSizeMax(2* 1024 * 1024);//设置文件上传的最大值List<FileItem> list = upload.parseRequest(request);for(FileItem item : list){ String fieldName = item.getFieldName(); //获取表单的属性名字 String fileName = item.getName() ; //获取文件名 if(item.isFormField()){//如果获取的 表单信息是普通的 文本 信息 }else{ File file = new File("d://test.txt"); item.write(file); }}
8. jQuery fileupload 多文件上传
//js$(function(){//文件上传地址//varurl='http://localhost/index.php/upload/do_upload';varurl='http://localhost/index.php/uploadwe';//初始化,主要是设置上传参数,以及事件处理方法(回调函数)$('#fileupload').fileupload({autoUpload:true,//是否自动上传//url:url,//上传地址dataType:'json',done:function(e,data){//设置文件上传完毕事件的回调函数//$.each(data.result.files,function(index,file){$("#myimg").attr({src:data.result.imgurl});$("#myimg").css({width:"290px",height:"218px"});//alert(data.result);},progressall:function(e,data){//设置上传进度事件的回调函数varprogress=parseInt(data.loaded/data.total*5,10);$('#progress.bar').css('width',progress+'%');}});});//上传至服务后,服务器返回json数据–上传图片的地址。//html<labelfor="text">上传图片</label><inputid="fileupload"type="file"name="files"data-url="<spanstyle="color:#ff6666;">jquery_save_img</span>"multiple>//data-url为上传至服务器端的处理接口/地址,可替换js中的url//服务器端functionjquery_save_img(){$arrType=array('image/jpg','image/gif','image/png','image/bmp','image/pjpeg','image/jpeg');$max_size='500000000000';//最大文件限制(单位:byte)$upfile='./uploads';//图片目录路径$file=$_FILES['files'];/*echo'filename:'.$file['tmp_name'].';<br/>';echo'size:'.$file['size'].';<br/>';echo'type:'.$file['type'].';<br/>';echo'name:'.$file['name'].';<br/>';*/if($_SERVER['REQUEST_METHOD']=='POST'){//判断提交方式是否为POSTif(!is_uploaded_file($file['tmp_name'])){//判断上传文件是否存在echo"<fontcolor='#FF0000'>文件不存在!</font>";exit;}if($file['size']>$max_size){//判断文件大小是否大于500000字节echo"<fontcolor='#FF0000'>上传文件太大!</font>";exit;}if(!in_array($file['type'],$arrType)){//判断图片文件的格式echo"<fontcolor='#FF0000'>上传文件格式不对!</font>xxx:".$file['type'];exit;}if(!file_exists($upfile)){//判断存放文件目录是否存在mkdir($upfile,0777,true);}$imageSize=getimagesize($file['tmp_name']);$img=$imageSize[0].'*'.$imageSize[1];$fname=$file['name'];$ftype=explode('.',$fname);$picName=$upfile."/cloudy".$fname;if(file_exists($picName)){//echo"<fontcolor='#FF0000'>同文件名已存在!</font>";//exit;}if(!move_uploaded_file($file['tmp_name'],$picName)){echo"<fontcolor='#FF0000'>移动文件出错!</font>";exit;}else{/*echo"<fontcolor='#FF0000'>图片文件上传成功!</font><br/>";echo"<fontcolor='#0000FF'>图片大小:$img</font><br/>";echo"图片预览:<br><divstyle='border:#F001pxsolid;width:200px;height:200px'><imgsrc="".$picName.""width=200pxheight=200px>".$fname."</div>";*/echo'{"imgurl":"http://localhost/uploads/cloudy'.$fname.'"}';}}}
9. fileupload上传图片
测试了下没问题[处提示运算符“||”无法应用于“string”和“string”类型的操作数]这个一般在if里出现,比如 本该是两个等号的你只打了一个等号 就会报这个错误.
10. 怎么用js来获取 fileupload中的上传文件的文件名
在firefox上,input(type=file)默认获取到的value值就是文件名。回在IE上,input(type=file)默认获取到的value值是答路径。因此用js来获取fileupload中的上传文件的文件名需要多方面考虑。你可以试下一下function getFileName(path){var pos1 = path.lastIndexOf('/');var pos2 = path.lastIndexOf('\\');var pos = Math.max(pos1, pos2)if( pos<0 )return path;elsereturn path.substring(pos+1);}
未经允许不得转载:山九号 » fileupload上传文件|怎么用js来获取 fileupload中的上传文件的文件名