Ajax方式提交带文件上传的表单及隐藏iframe应用

网络编程 2025-03-29 03:38www.168986.cn编程入门

对于需要处理文件上传的表单,使用AJAX提交确实会遇到一些挑战。通过采用一些巧妙的方法,如增加一个隐藏的iframe,我们可以轻松实现表单数据的提交。在此过程中,基本原理是通过在页面上增加一个隐藏的iframe,然后使用AJAX提交除文件以外的表单数据。在表单数据成功提交后,通过回调函数单独提交文件,而这个文件提交的表单的target属性则指向之前隐藏的iframe。这样,文件上传的页面刷新就会在隐藏的iframe中进行,而用户主要操作的页面则不会刷新。

接下来是HTML代码示例:

```html


支持JPG, JPEG, GIF, BMP, SWF, RMVB, RM, AVI文件的上传

```

我们还需要在JavaScript中实现一个回调函数,用于处理文件上传后的响应信息。这个回调函数会清空文件上传框并显示后台信息。值得注意的是,清空文件上传框的方法与普通的有所不同。

至于upload.jsp页面的代码,主要涉及到SmartUpload对象的创建和初始化,以及上传文件的限制设置。我们可以限制每个上传文件的最大长度、总上传数据的长度,还可以设定允许或禁止上传的文件类型。通过这种方式,我们可以确保只有符合要求的文件才能被上传。

在这段代码中,我们尝试执行一系列文件上传操作。我们设定被拒绝的文件列表,包括exe、bat、jsp、htm、html等文件类型。接着,启动文件上传功能,将文件保存到指定的目录中。这里的保存路径被设定为C盘根目录,尽管在实际应用中,我们通常会选择更为安全的路径来存储上传的文件。如果在过程中发生异常,我们会捕获这个异常,打印其堆栈轨迹,并将标志位sign设为false。

这段代码的核心在于,如果文件上传成功(即sign为true),它会向父页面输出一段JavaScript代码,通知页面文件上传成功;如果文件上传失败(即sign为false),则会输出另一段JavaScript代码,通知页面文件上传出错。这一切都在一个名为upload.jsp的页面中完成,这个页面只需关注输出的格式。

实际上,这是通过Iframe实现的。在Iframe中输出一段js代码,然后在Iframe中控制其父页面的行为。这种方式无需刷新整个页面,只需刷新Iframe中的页面即可。虽然状态栏会有刷新(因为Iframe中的页面刷新了),但外部页面,也就是用户所看到的页面是没有刷新的。这可以看作是一种类似Ajax的上传方式。

别忘了在WEB-INF/lib目录下加入jspSmartUpload.jar包,这是实现这一功能所必需的。通过Cambrian的render('body')方法,我们可以将这个上传组件渲染到网页的主体部分。这是一个利用Iframe和JavaScript实现的无刷新页面上传组件,适合在Web应用中广泛使用。

上一篇:Gridview用法大总结(全程图解珍藏版) 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by