上传文件和图片的限制的问题
开发工具与关键技术:Visual Studio 2015 请求数据的交互
作者:李国旭
撰写时间:2019年4月13日
在学习了ASP.NET MVC中我觉得文件的上传方式一定要用Post来提交,为了保证上传的文件数据的准确性,那为啥不用其他的方法呢?
在Ajax中也有“post()”但是这个post是通过远程 HTTP POST 请求载入信息。Open(method,url,async)这是一个规定请求的类型,URL,请求是否进行异步处理。Method:请求的类型,只有两种GET或POST;url:文件在服务器上的位置;async:true(异步)或false(同步)而send(string)是发送请求到服务器中,括号里面的string仅用于POST请求。那么在什么情况下需要使用POST呢?
首先,如果你缓存的文件不是一个选项或者说(更新服务器上文件或数据库);第二,发送到服务器的数据很大的时候,GET在这里就显得用不上了,而POST就没有什么大小的限制,而且我们在发送用户输入那些可以包含未知的字符,比如说:银行卡的密码账号这些重要的信息如果用GET很危险,这时候就得用POST来发送了;因为它更强大和安全性高。
下面我们一起来看一下下面这个例子(注明:本文图借鉴老师的)
用post请求方式提交数据,然后发送数据给FormData,如果文件大小超过20M,就会提示用户重新“请选择文件”,这也是为了避免上传的文件太大而导致上传缓慢,这样不利于用户的体验,所以就得加一个图片的限制它的大小,这样上传的会更快对用户的使用感觉好一点。
因此在后端设置它的文件大小大约30M左右这里面的两个属性:maxRequestLength属性:用于防止服务器被攻击,比如说因用户向服务器发送大文件而导致被拒绝访问。默认值为4096就是(4MB)
这里的change的改变事件首先声明一个对象为 (“files”)然后判断一下file里面是否有文件,这里如果不限制一下文件的大小的话,可能会导致文件上传失败,所以在开始文件上传的时候使用XMLHttpRequest这个方法,再new一个FormData对象,用“append”方法将第一个文件放入FormData;new一个XMLHttpRequest的对象。如果上传成功就需要刷新一下附件列表,否则就上传失败;而XMLHttpRequest对象是用于幕后与服务器交换数据,当然它也可以在不重载加载页面的情况下更新你的网页;第二在页面已加载从服务器请求数据或者接收数据。第三,就是后台向服务器发送数据。以上就是我对上传文件和图片的限制问题的总结,希望对大家能有所帮助!