.net mvc文件上传注意事项(源于后端file为null引发的注意思考)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_38093650/article/details/81198648

1.ajax不支持文件图片直接异步上传

2.可以使用FormData处理表单数据再使用ajax。(注意:此方法兼容IE10+,低版本会失效

eg:(详细例子:https://blog.csdn.net/anphper/article/details/78140294

3.低版本的IE8及+可使用ajaxfileupload(注意:配1.9一下的jQuery文件)

eg:(详细例子:https://www.cnblogs.com/labimeilexin/p/6742647.html

4.最方便的方法就是form表单提交(但是不能实现异步提交)

eg: form表单属性一定要加上 method="post"和 enctype="multipart/form-data"

展开阅读全文

Struts2文件上传action接收到的File为null?求助!!!

05-11

struts.xml 代码如下:rnrn[color=#FF0000]rn rnrnrn rn rn rn rn /uploadrn /succ.jsprn rn rn[/color]rnrnrnjsp代码:rnrn[color=#FF0000]<%@ page language="java" contentType="text/html; charset=UTF-8"%> rn rn rn Struts2 File Upload rn rn rn rn 文件标题: rn 选择文件: rn rn rn rn[/color]rnrnaction 代码:rnrn[color=#FF0000]package org.qiujy.web.struts2;rnrnrnimport java.io.IOException;rnrnrn import java.io.File;rnrn import java.io.FileInputStream;rnrn import java.io.FileOutputStream;rnrnimport java.io.InputStream;rnrnimport java.io.OutputStream;rnrnimport javax.servlet.ServletContext;rnrn rnrnimport org.apache.struts2.ServletActionContext;rnrn rnrnimport com.opensymphony.xwork2.ActionSupport;rnrn rnrn/**rnrn *处理文件上传的Action类rnrn *@authorqiujyrnrn *@version1.0rnrn */rnrnpublic class FileUploadAction extends ActionSupport rnrn // private static final int BUFFER_SIZE = 16 * 1024;rn // 文件标题rn private String title;rn // 上传文件域对象rn private File upload;rn // 上传文件名rn private String uploadFileName;rn // 上传文件类型rn private String uploadContentType;rn // 保存文件的目录路径(通过依赖注入)rn rn rn rn rn public String getTitle() rn return title;rn rnrn public void setTitle(String title) rn this.title = title;rn rnrn public File getUpload() rn return upload;rn rnrn public void setUpload(File upload) rn this.upload = upload;rn rnrn public String getUploadFileName() rn return uploadFileName;rn rnrn public void setUploadFileName(String uploadFileName) rn this.uploadFileName = uploadFileName;rn rnrn public String getUploadContentType() rn return uploadContentType;rn rnrn public void setUploadContentType(String uploadContentType) rn this.uploadContentType = uploadContentType;rn rn rn @Overridern public String execute() throws Exception rn //根据服务器的文件保存地址和原文件名创建目录文件全路径rnrn ServletContext svct = ServletActionContext.getServletContext();rn System.out.println(upload);rn if(upload != null)rn rn String dataDir = svct.getRealPath("/upload");rn File saveFile = new File(dataDir,uploadFileName);rn upload.renameTo(saveFile);rn rn return SUCCESS;rn rn [/color]rnrn测试时只能上传txt文件,其他格式的文件都不能上传,打印出的[b]upload[/b]为null。rn求解释是哪里出了问题!!!!rnrn 论坛

类域引发思考

12-30

这一段时间一直在琢磨对象模型,现在看到个问题都想用模型来解释,不过确实如此,几乎什么都可以用对象模型来解释rn搞这个模型就绝对离不开域rn到底域是什么?这个恐怕不是三言两语说的明白的,每个人都有一定的概念,但是可能大不相同rnC++上指的是作用域rn一对大括号就对应了一个作用域,学过C++的都知道,作用域里的局部变量出了作用域就消亡了(根本原因是栈恢复)rn而对于静态变量,编译器编译的时候做了处理,解析为“全局变量”,但这个全局变量和一般意义上的全局变量不同,它带有记号,这个记号就是 域,标志着这个所谓的全局变量是专属于这个域的rn重点是类域,其实类域和一般域没什么区别也是一对形成的而已rn要讨论的自然是函数和数据rn其实同样是编译器在编译的时候进行了处理,把成员函数(不管是静态还是非静态,虚的还是非虚的)全都解析成了全局函数,但是又带上了记号,那就是专属于某个类的记号,当然解析后的函数全部是独一无二的rn只是寻址这些函数的时候有所区别,这些区别也就是C++本身的特性所导致的,具体什么特性不再此讨论rn然后就是数据成员,静态数据成员,独立于域依附于域。同样编译的时候解析成了专属此类的全局变量,非静态变量是和类的对象同生命的,依附于对象而存在。rn静态成员函数和静态成员数据是独立于域的,所以不需要用对象来存取,依附于域,说明可以用对象来存取,也可以用类名来存取。rn说了这么多,到底域是个什么好像还是很没头绪rn[img=http://hi.csdn.net/attachment/201112/30/10181841_1325218067OLJo.jpg][/img]rn上面这张图上面的虚线就是所谓的类域,局部变量是依附于对象生存在栈空间,静态函数和数据以及非静态函数被解析后分别存在于数据段和代码段rn一些理解,希望对大家有所帮助,有不同意见的请回贴已作深入探讨,谢谢!rnrn 论坛

没有更多推荐了,返回首页