求救!Extjs fileuploadfield怎么上传到服务器 后台用.net写
var formFilePath = new ExtuxformFileUploadField({ id: 'PrjFilePath', emptyText: '请选择要导入的文件!', fieldLabel: '文件路径', name: 'PrjFilePath', buttonText: '',
buttonCfg: { iconCls: 'page_white_put' }
});
HttpPostedFile postedFile = RequestFiles["PrjFilePath"];
string ImportFile = postedFileFileName;
string fileName = SaveFile(postedFile, Server, Request); //文件保存至服务器
SystemIOFileStream stream = SystemIOFileOpenRead(fileName);
//文件流操作你就根据你的业务来 自行搞定
//保存方法
String SaveFile(HttpPostedFile postedFile, HttpServerUtility server, HttpRequest request)
{
String fullName = "";
try
{
String fileName = PathGetFileName(postedFileFileName);
String fileExtension = PathGetExtension(fileName);
String year = DateTimeNowYearToString();
DateTime date = DateTimeNow;
//生成文件名
String saveName = dateToString("yyyyMMddHHmmssfffffff");
String tmpName = saveName + fileExtension;
String path = serverMapPath(@"~/" + ExcelHelperPATH_NAME);
fullName = path + @"\" + tmpName;
postedFileSaveAs(fullName);
}
catch (Exception)
{
throw new Exception("保存上传文件出错!");
}
return fullName;
}
这是一般文件上传/上传必然的设计。上传的在存到服务器上时会自动重命名后保存,最常见的是以时间命名,你后一次虽然上传的是同一个文件,但传上去后被重命名了。
这样设计的好处是:1安全:如果上传的文件不重命名,如果别人上传了不安全的文件,可能以原文件名直接访问而出现安全隐患。2防误操作或防重复:如果不小心传了同名但内容不同的,前一次不至于被覆盖。
如果已经有everyone的完全访问权限,那么不应该有这个问题了。建议你把文件上传访问的文件夹response出来,确认是不是你设置好的那个文件夹。另外,服务器有什么杀毒软件没有,会不会有可能是杀毒软件保护了那个目录呢。停一下杀毒软件看看。
http://wwwdiyblcom/course/4_webprogram/aspnet/asp_netxl/2008106/148796html
这顶上很详细
/// FileUpload1HasFile 如果是true,则表示该控件有文件要上传
/// FileUpload1FileName 返回要上传文件的名称,不包含路径信息
/// FileUpload1FileContent 返回一个指向上传文件的流对象
/// FileUpload1PostedFile 返回已经上传文件的引用
/// FileUpload1PostedFileContentLength 返回上传文件的按字节表示的文件大小
/// FileUpload1PostedFileContentType 返回上传文件的MIME内容类型,也就是文件类型,如返回"image/jpg"
/// FileUpload1PostedFileFileName 返回文件在客户端的完全路径(包括文件名全称)
/// FileUpload1PostedFileInputStream 返回一个指向上传文件的流对象
/// FileInfo对象表示磁盘或网络位置上的文件。提供文件的路径,就可以创建一个FileInfo对象:
文章出处:http://wwwdiyblcom/course/4_webprogram/aspnet/asp_netxl/2008106/148796html
package comletvdircloudutil;import comletvdircloudcontrollerDirectorWatermarkController;import orgslf4jLogger;import orgslf4jLoggerFactory;import javaio;import javanetHttpURLConnection;import javanetMalformedURLException;import javanetURL;/ Created by xijunge on 2016/11/24 0024 /public class HttpRequesterFile { private static final Logger log = LoggerFactorygetLogger(HttpRequesterFileclass); private static final String TAG = "uploadFile"; private static final int TIME_OUT = 100 1000; // 超时时间 private static final String CHARSET = "utf-8"; // 设置编码 / 上传文件到服务器 @param file 需要上传的文件 @param RequestURL 文件服务器的rul @return 返回响应的内容 / public static String uploadFile(File file, String RequestURL) throws IOException {
String result = null;
String BOUNDARY = "letv"; // 边界标识 随机生成 String PREFIX = "--", LINE_END = "\r\n";
String CONTENT_TYPE = "multipart/form-data"; // 内容类型 try {
URL url = new URL(RequestURL);
HttpURLConnection conn = (HttpURLConnection) urlopenConnection();
connsetReadTimeout(TIME_OUT);
connsetConnectTimeout(TIME_OUT);
connsetDoInput(true); // 允许输入流 connsetDoOutput(true); // 允许输出流 connsetUseCaches(false); // 不允许使用缓存 connsetRequestMethod("POST"); // 请求方式 connsetRequestProperty("Charset", CHARSET); // 设置编码 connsetRequestProperty("connection", "keep-alive");
connsetRequestProperty("Content-Type", CONTENT_TYPE + ";boundary=" + BOUNDARY);
普通情况下,浏览器会根据URL后缀(如:html, aspx, exe, rar)或者HTTP HEADER里的MIME(content-type,如text/html,image/jpeg)来判断是否弹出“文件下载”对话框。HTML,PDF,TXT,JPG这些文本,的,都可以直接用浏览器来看,所以无需“文件下载”对话框。而EXE,RAR等文件无法直接用浏览器看,所以需要“文件下载”对话框。具体实现,是你给的网页。
既然下载功能实现起来这么简单,为什么有的人还要写一些复杂的代码呢?
=========================
那么你所给的网页中,HTTP HEADER里多了:"Content-Disposition", "attachment;filename=" + fileName,"Content-Type":"application/octet-stream",这个的用处就是强制让浏览器弹出“文件下载”对话框,无论是HTML,TXT,PDF,都要下载。还有文件名字可以定义。octet-stream是一种MIME,是让浏览器接受大文件已stream形式缓冲下载(其实没什么特别的 ~)。
那个东西是不用做的
看看HTTP协议会多一些理解。
看看lib里面有没有
commons-fileupload-122jar
commons-io-21jar
这两个包
1:配置文件里加上
<!-- 文件上传 -->
<bean id="multipartResolver" class="orgspringframeworkwebmultipartcommonsCommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"/>
<!-- 指定所上传文件的最大值单位Byte。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
<property name="maxUploadSize" value="10000000"/>
</bean>
2:页面form表单的form标签里面加上enctype="multipart/form-data"
3:<input style="HEIGHT: 22px;width:200px;" type="file" name="myfile" onchange="fileChange(this);"/>里的name名称和controller里的name一致
-----------------------
-----------------------
-----------------------
http://blogcsdnnet/jadyer/article/details/7575934这个是参考的博客
0条评论