求救!Extjs fileuploadfield怎么上传到服务器 后台用.net写

求救!Extjs fileuploadfield怎么上传到服务器 后台用.net写,第1张

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这个是参考的博客

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 求救!Extjs fileuploadfield怎么上传到服务器 后台用.net写

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情