基于web的文件上传|JAVA WEB怎么实现大文件上传

⑴ 求php怎么实现web端上传超大文件

加大PHP上传文件大小的限制,是通过修改PHP.INI文件来实现,但是这个支持是有限度的,因为WEB协议本为下载而生,超大文件的上传是FTP的专利。PHP用超级全局变量数组$_FILES来记录文件上传相关信息的。1.file_uploads=on/off 是否允许通过http方式上传文件2.max_execution_time=30 允许脚本最大执行时间,超过这个时间就会报错3.memory_limit=50M 设置脚本可以分配的最大内存量,防止失控脚本占用过多内存,此指令只有在编译时设置了–enable-memory-limit标志的情况下才生效4.upload_max_filesize=20M 允许上传文件的最大大小,此指令必须小于post_max_size5.upload_tmp_dir 上传文件临时存放目录6.post_max_size=30M 允许post方式可以接受最大大小$_FILES['myFile']['name'] 客户端上次文件的原始名称。 $_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。 $_FILES['myFile']['size'] 已上传文件的大小,单位为字节。 $_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函数设置是不起作用的。 $_FILES['myFile']['error'] 和该文件上传相关的状态码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量) UPLOAD_ERR_OK 值:0; 没有错误发生,文件上传成功。UPLOAD_ERR_INI_SIZE 值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。 UPLOAD_ERR_FORM_SIZE 值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 UPLOAD_ERR_PARTIAL 值:3; 文件只有部分被上传。 UPLOAD_ERR_NO_FILE 值:4; 没有文件被上传。 值:5; 上传文件大小为0. 文件被上传结束后,默认地被存储在了临时目录中,这时您必须将它从临时目录中删除或移动到其它地方,如果没有,则会被删除。也就是不管是否上传成功,脚本执行完后临时目录里的文件肯定会被删除。附:修改PHP上传文件大小限制的方法1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行.这就导致出现 无法打开网页的情况.这时我们可以修改 max_execution_time在php.ini里查找max_execution_time默认是30秒.改为max_execution_time = 00表示没有限制2. 修改 post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空.查找 post_max_size .改为post_max_size = 150M3. 很多人都会改了第二步.但上传文件时最大仍然为 8M.为什么呢.我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小。查找upload_max_filesize,默认为8M改为upload_max_filesize = 100M另外要说明的是,post_max_size 大于 upload_max_filesize 为佳.

⑵ 如何web上传文件的安全

在Web编程中,我们常需要把一些本地文件上传到Web服务器上,上传后,用户可以通过浏览器方便地浏览这些文件,应用十分广泛。 1. C#实现Web文件的上传 使用C#如何实现文件上传的功能呢?下面笔者简要介绍一下。 首先,在你的Visual C# web project 中增加一个上传用的Web Form,为了要上传文件,需要在ToolBox中选择HTML类的File Field控件,将此控件加入到Web Form中,然而此时该控件还不是服务端控件,我们需要为它加上如下一段代码:<input id=PreviousFile1 type=file size=49 runat="server">,这样它就成为服务端控件了,如果需要同时上传数个文件时,我们可以相应增加此控件。 需要注意的是代码中一定要把<form>的属性设置成为: 复制代码 代码如下: <form method=post encType=multipart/ form-data runat="server"> 如果没有这个属性,就不能实现上传。 然后在此Web Form中增加一个Web Form类的Button,双击Button添加如下代码: 复制代码 代码如下: //上传图片的程序段 DateTime now = DateTime.Now ; //取现在时间到DataTime类的对象now中 string strBaseLocation = "D:webFCpic"; //这是文件将上传到的服务器的绝对目录 if (PreviousFile1.PostedFile.ContentLength != 0) //判断选取对话框选取的文件长度是否为0 { PreviousFile1.PostedFile.SaveAs(strBaseLocation+now.DayOfYear.ToString()+PreviousFile1.PostedFile.ContentLength.ToString()+".jpg"); //执行上传,并自动根据日期和文件大小不同为文件命名,确保不重复 Label1.Text="图片1已经上传,文件名为:"+now.DayOfYear.ToString()+PreviousFile1.PostedFile.ContentLength.ToString()+".jpg"; navigator.Insert(System.Xml.TreePosition.After, XmlNodeType.Element,"pic1","","") ; navigator.Insert(System.Xml.TreePosition.FirstChild, XmlNodeType.Text,"pic1","","") ; navigator.Value= now.DayOfYear.ToString()+PreviousFile1.PostedFile.ContentLength.ToString()+".jpg" ; navigator.MoveToParent() ; } 上面的代码用于笔者开发的一个使用XML文件存储新闻信息的系统中,后面几句代码作用是写上传文件信息到XML文件中。如果要上传其他类型文件,只需要将jpg改为相应类型的后缀名即可,如改为doc即可上传Word文件,浏览器即可直接浏览上传的Word文件。 【注意事项】 1. 上传文件不可以无限大; 2. 要注意IIS的安全性方面的配合; 3. 用Visual Studio 的安装项目做安装程序的时候,请注意安装程序所在的绝对路径问题; 4. 注意文件上传后的重名问题。 2. C#实现Web文件的上传 复制代码 代码如下: using System; using System.Data; using System.Data.SqlClient; using System.Web.UI.HtmlControls; using System.Drawing.Imaging; using System.Configuration; using System.Drawing; namespace zhuanti { /// <summary> /// 这是一个用于玩家投稿中实现玩家上传文件功能中用到的相应的函数的功能模块 /// </summary> public class FileUpload { public enum File //定义一个人用于存放玩家上传文件信息的一个数组 { FILE_SIZE , //大小 FILE_POSTNAME, //类型(文件后缀名) FILE_SYSNAME , //系统名 FILE_ORGINNAME, //原来的名字 FILE_PATH //文件路径 } private static Random rnd = new Random(); //获取一个随机数 public static string[] UploadFile(HtmlInputFile file,string Upload_Dir) //实现玩家文件上传功能的主函数 { string[] arr = new String[5]; string FileName = GetUniquelyString(); //获取一个不重复的文件名 string FileOrginName = file.PostedFile.FileName.Substring (file.PostedFile.FileName.LastIndexOf("")+1);//获取文件的原始名 if(file.PostedFile.ContentLength<=0) { return null; } string postFileName; string FilePath = Upload_Dir.ToString(); string path = FilePath + ""; try { int pos = file.PostedFile.FileName.LastIndexOf(".")+1; postFileName = file.PostedFile.FileName.Substring(pos,file.PostedFile.FileName.Length-pos); file.PostedFile.SaveAs(path+FileName+"."+postFileName); //存储指定的文件到指定的目录 } catch(Exception exec) { throw(exec); } double unit = 1024; double size = Math.Round(file.PostedFile.ContentLength/unit,2); arr[(int)File.FILE_SIZE] = size.ToString(); //文件大小 arr[(int)File.FILE_POSTNAME] = postFileName; //文件类型(文件后缀名) arr[(int)File.FILE_SYSNAME] = FileName; //文件系统名 arr[(int)File.FILE_ORGINNAME] = FileOrginName; //文件原来的名字 arr[(int)File.FILE_PATH]=path+FileName+"."+postFileName; //文件路径 return arr; } public static bool OperateDB(string sqlstr) //建立一个和数据库的关联 { if (sqlstr==String.Empty) return false; SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["connstring"]); SqlCommand myCommand = new SqlCommand(sqlstr, myConnection); myConnection.Open(); myCommand.ExecuteNonQuery(); myConnection.Close(); return true; } public static string GetUniquelyString() //获取一个不重复的文件名 { const int RANDOM_MAX_VALUE = 1000; string strTemp,strYear,strMonth,strDay,strHour,strMinute,strSecond,strMillisecond; DateTime dt =DateTime.Now; int rndNumber = rnd.Next(RANDOM_MAX_VALUE); strYear = dt.Year.ToString (); strMonth = (dt.Month > 9)? dt.Month.ToString() : "0" + dt.Month.ToString(); strDay = (dt.Day > 9)? dt.Day.ToString() : "0" + dt.Day.ToString(); strHour = (dt.Hour > 9)? dt.Hour.ToString() : "0" + dt.Hour.ToString(); strMinute = (dt.Minute > 9)? dt.Minute.ToString() : "0" + dt.Minute.ToString(); strSecond = (dt.Second > 9)? dt.Second.ToString() : "0" + dt.Second.ToString(); strMillisecond = dt.Millisecond.ToString(); strTemp = strYear + strMonth + strDay +"_"+ strHour + strMinute + strSecond +"_"+ strMillisecond +"_"+ rndNumber.ToString () ; return strTemp; } } }

⑶ java web 本地端上传文件到服务器端

Web文件上传采用POST的方式,与POST提交表单不同的是,上传文件需要设置FORM的enctype属性为multipart/form-data.由于上传的文内件会比较大,容因此需要设置该参数指定浏览器使用二进制上传。如果不设置,enctype属性默认为application/x-www-form-urlencoded,使用浏览器将使用ASCII向服务器发送数据,导致发送文件失败。上传文件要使用文件域(<input type='file'/>,并把FORM的Enctype设置为multipart/form-data.

⑷ java web怎么实现文件上传到服务器

/*** 上传到本地* @param uploadFile* @param request* @return*/@RequestMapping("/upload")@ResponseBodypublic Map<String, Object> uploadApkFile(@RequestParam("uploadUpdateHistoryName") MultipartFile uploadFile,HttpServletRequest request) {Map<String, Object> map = new HashMap<>();// 上传文件校验,包括上传文件是否为空、文件名称是否为空、文件格式是否为APK。if (uploadFile == null) {map.put("error", 1);map.put("msg", "上传文件不能为空");return map;}String originalFilename = uploadFile.getOriginalFilename();if (StringUtils.isEmpty(originalFilename)) {map.put("error", 1);map.put("msg", "上传文件名称不能为空");return map;}String extName = originalFilename.substring(originalFilename.lastIndexOf(".") + 1);if (extName.toUpperCase().indexOf("APK") < 0) {map.put("error", 1);map.put("msg", "上传文件格式必须为APK");return map;}String path = request.getSession().getServletContext().getRealPath("upload");String fileName = uploadFile.getOriginalFilename();File targetFile = new File(path, fileName);if (!targetFile.exists()) {targetFile.mkdirs();}// 保存String downLoadUrl = null;try {uploadFile.transferTo(targetFile);downLoadUrl = request.getContextPath() + "/upload/" + fileName;map.put("error", 0);map.put("downLoadUrl", downLoadUrl);map.put("msg", "上传文件成功");return map;} catch (Exception e) {e.printStackTrace();map.put("error", 1);map.put("msg", "上传文件失败");return map;}}//上传文件$('#btnUpload').bind('click',function(){//var formdata= $('#uploadForm').serializejsON();var formdata = new FormData($( "#uploadForm" )[0]);$.ajax({url:"upload.do",data:formdata,async: false, cache: false, processData:false,contentType:false,//dataType:'json',type:'post',success:function(value){if(value.error==0){$('#downLoadUrlId').val(value.downLoadUrl);$.messager.alert('提示',value.msg);$('#uploadWindow').window('close');}else{$.messager.alert('提示',value.msg);}}});});<div id="uploadWindow" class="easyui-window" title="apk上传" style="width: 230px;height: 100px" data-options="closed:true"><form id="uploadForm" enctype="multipart/form-data"><td><input type ="file" style="width:200px;" name = "uploadUpdateHistoryName"></td> </form><button id="btnUpload" type="button">上传Apk</button></div>java js html

⑸ 如何将Web文件夹中的内容上传到服务器中

一般是获取服务器FTP帐户,通过FTP软件如CuteFTP将Web文件夹整个上传到服务器指定目录,传之前需求有服务器帐户及上传权限,可咨询服务器管理员

⑹ WEB页面如何实现拖拽文件夹上传

目前用户要通过Web上传一个文件是通过 <input type="file /"> 这个标记。具体过程需要在一个很傻的对话框里定位文件夹 -> 在大量的文件里找到目标文件 -> 确定 -> 点“上传”按钮。我们能不能把这个步骤简化,实现拖拽上传呢?比如说,1. 在 资源管理器 里选择一个图片2. 拖拽到一个网页,比如说一个正在编辑的博客3. 后台AJXJ自动上传这个图片4. 在正在编辑的博客的当前位置直接插入并显示图片。我想用javascript实现。(跟AJAX一样,有一点hack的味道。)原理很简单。首先用户拖拽一个图片到浏览器,浏览器会自动跳转到这个图片。比如说我拖拽 D:\test\1.jpg 到浏览器,浏览器会跳转当前页面到 file:///D:/test/1.jpg。那么我们要做的就是在浏览器跳转之前:1. 截获body.onunload事件,并取消浏览器的跳转2. 获知浏览器将要跳转到的页面3. 自动填写 <input type="file" />的地址4. AJAX后台上传图片5. 把图片插入当前的正在编辑位置。发这个帖子的目的,想跟大家探讨这个设想的可能性。最后希望得出一个结论:可行,还是不可行。如果可行的话我希望深入探讨出一个固定的模式。(像AJAX那样)

⑺ 利用webservice怎么上传文件

1. Web Service 简介Web Service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。(Web Service 在此不做过多介绍,具体介绍可网络下)2. WEB Service 开发2.1. 服务配置Asp.Net 一般支持上传4MB大小文件,为实现上传超过4MB大小文件,Asp.Net项目需要调整配置(Web.Config)的httpRuntime节点。<httpRuntime maxRequestLength="40960" executionTimeout="1800" />maxRequestLength:指定输入流缓冲阈值限制(以 KB 为单位)。此限制可用于防止拒绝服务攻击;例如,因用户向服务器发送大型文件而导致的拒绝服务攻击。默认值为 4096 (4 MB)。executionTimeout: 指定在被 ASP.NET 自动关闭前,允许执行请求的最大秒数。默认值110秒。2.2. 服务开发本人采用接收字节的方式开发Web Service,提供是创建还是累加参数,根据参数将文件字节写入文件中。示例代码如下:3. WinForm 程序开发WinForm是·Net开发平台中对Windows Form的一种称谓。新增WinForm程序项目,添加文件上传服务引用。3.1. Winform 程序实现效果程序界面简单设计为:选择文件按钮,选择文件列表,上传文件按钮、上传信息及上传进度。

⑻ 前端怎么实现web端上传超大文件

第一点:系统的配置

⑼ JAVA WEB怎么实现大文件上传

解决这种大文件上传不太可能用web上传的方式,只有自己开发插件或是当门客户端上传,或者用现有的ftp等。1)开发一个web插件。用于上传文件。2)开发一个FTP工具,不用web上传。3)用现有的FTP工具。下面是几款不错的插件,你可以试试:1)Jquery的uploadify插件。具体使用。你可以看帮助文档。2)网上有一个Web大文件断点续传控件:http://www.cnblogs.com/xproer/archive/2012/02/17/2355440.html此控件支持100G文件的断点续传操作,提供了完善的开发文档,支持文件MD5验证,支持文件批量上传。JavaUploader免费开源的,是用applet实现的,需要签名才能在浏览器上用,支持断点。缺点是收费。3)applet也是一种方式,MUPLOAD组件就是以APPLET方式处理的。如果你不需要访问用户的硬盘文件,那你可以使用FTP上传,也支持断点。但只要你访问用户磁盘,又要支持断点,那必须要签名的。不然浏览器不知道你的身份。

⑽ java web前端上传文件到后台常用的几种方式

1、使用form表单提交 但是这里要记得添加enctype属性,这个属性是指定form表单在向服务器提交之前,对表单数据如何进行编码。 文件域中的name="file"属性的值,需要和后台接收的对象名一致,不然接收不到。2、使用ajax提交文件使用ajax提交首先引入jquery-form.js文件才能实现,接着使用上面的html代码,加入以js则可以实现ajax提交文件。3、使用FormData对象4、后台接收文件,框架采用的Spring Boot 微服务框架,因为该框架搭建很方便所以采用这个框架写例子。


赞 (0)