首页 > 编程知识 正文

layui文件上传实例,附件是什么部位

时间:2023-05-05 07:11:19 阅读:11629 作者:2437

开发工具和关键技术: VS附件上传作者: zydyz制作时间:在学习MVC的过程中,我们要上传图片、上传文档等文件,接下来就是附件文件的上传让我们先看看js部分的代码:

如上图所示,将单击事件添加到“附件”按钮中,然后单击“附件”按钮触发附件上传表单的单击事件。 然后,将change更改事件添加到附件上载表单中。 change () :元素的值更改时会发生change事件,用粗暴的鞋子编写代码。 定义接收匹配元素的第一个元素的变量。 prop () :获取匹配元素集中第一个元素的属性值。 然后,判断是否在“if else”中选择了文件,如果未被选择,则提示选择文件。 并且,“if else”还判断上传的文件是否超过20MB。 如果超过,则上传的文件不能超过20MB。 js上传的文件不能超过20MB,如果超过的话就使用第三方上传的插件。 如果小于20MB,请继续以下代码。

如上图所示,确定文件大小后,到达上传的代码。 准备开始文件上传。 使用XMLHttpRequest开始文件上传。 XMLHttpRequest也就是ajax的基本软件包。 让我们先来看几个步骤:

)1)新建用于放入文件的FormData对象。

)2)将第一个文件放入FormData,append ) :为每个匹配的元素在内部添加内容。

)3) new的一个XMLHttpRequest对象主要是为了注册到监听事件中。

)4)成功事件发生时,onload表示成功,上传成功后首先关闭加载层,然后判断变量是否等于true,相等时更新附件列表,提醒用户上传成功。

)5)发送上传失败事件。 onerror表示失败,如果上传失败,则关闭加载层,然后警告用户上传失败。

(6)上传进度)不断调用。 upload.onprogress表示上载的进度。 例如,event.total是需要传输的总字节,而event.loaded是传输的字节。 如果event.lengthComputable不为真,则event.total为0。

)7)上传文件。 上传的文件请务必以后期方式提交。 因为不能用get方式提交。 上载的文件传递给两个参数。 第一个参数以开机自检方式提交,第二个参数是路径(url )。

(8)发送数据,其产生的数据是以前我们新建的FormData对象中的数据。

写完js部分的代码后,让我们看看控制器的代码:

如上图所示,使用“try catch”捕获异常,然后确定上传文件的大小。 ContentLength :获取上载文件的大小(以字节为单位),并确定上载的文件是否大于或等于20MB。 如果较大,则警告用户上传的文件不小于20MB。 然后检索session中的文件表,最后检查目录是否存在,如果不存在,则创建它。 Exists () :确定指定路径是否引用磁盘上的现有目录。 MapPath () :如果在派生类中重写,则返回与Web服务器上指定虚拟路径相对应的物理文件路径(CreateDirectory ) ) :通过指定路径创建所有目录和子目录。

如上图所示,可以分为几个步骤。 (1)获取文件类型,即文件扩展名,如. txt。 Path :对包含文件或目录路径信息的字符串实例执行操作。 GetExtension (:返回指定路径字符串的扩展名。 )2)获取不包含文件扩展名的名称。 GetFileNameWithoutExtension (:返回指定路径字符串的文件名,不带扩展名。 (3)获取原文件名。 )4)在文件名中添加时间字符串,使文件名不相同。 DateTime表示时间上的瞬间,通常用日期和当天的时间表示。 Now表示检索在此计算机上为当前日期和时间设置的DateTime对象,表示为本地时间。 ToString (表示使用指定的格式将当前DateTime对象的值转换为等效的字符串表示形式。 此处的" yyy-mm-" )5)保存文件的路径。 (6)保存档案。

如上图所示,上传的文件有多种格式,因此需要确定上传的文件的格式是什么类型。

查询数据并分配值以更新会话,如上图所示。 在此使用session的原因是,在未保存附件上载之前,它不应该出现在数据库中。 附件上载是属于公告的附件,尚未保存公告,因此附件上载尚未保存在数据库中。 因为要查询表单,所以必须先找到用于保存附件上载数据的容器。 上载附件的最佳容器是session,而不同sesion之间的空间是独立的。 否则,除非会话中的数据为空,否则默认情况下也不会删除,因此数据是稳定的。 由于已将上载到附件的数据保存到Session,因此在以前查询数据时将查询Session而不是数据库中的数据。 因此,请在上载附件之前查找以前是否上载过Session,如果以前上载过,请转换数据。 如果以前没有上传过,请创建新的会话。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。