当前位置:文档之家› extjs上传文件模块

extjs上传文件模块

extjs上传文件模块
extjs上传文件模块

Ext文件上传

判断,用于上传文本和相片代码如下,把一下代码封装在一个js文件里面

Jscript代码

1.//*****************************************上传的公共

js************************************************************* **//

2.

3./**

4.

5. * 约定:types为调用时传来的参数.形式为jsp-gig-png

6.

7. * uploadid为上传后要填充路径的控件id

8.

9. * 上传的属性均为upload

10.

11. * 功能:页面调用openUpload("","");方法即可

12.

13. */

14.

15.//...允许上传的后缀名

16.

17.var types = "";

18.

19.

20.

21.//...上传后填充控件的id

22.

23.var uploadid = "";

24.

25.

26.

27.function openUpload(type,id){

28.

29. types = type;

30.

31. uploadid = id;

32.

33. winUpload.show();

34.

35. }

36.

37.

38.

39.var formUpload = new Ext.form.FormPanel({

40.

41. baseCls: 'x-plain',

42.

43. labelWidth: 80,

44.

45. fileUpload:true,

46.

47. defaultType: 'textfield',

48.

49. items: [{

50.

51. xtype: 'textfield',

52.

53. fieldLabel: '文件',

54.

55. name: 'upload',

56.

57. inputType: 'file',

58.

59. allowBlank: false,

60.

61. blankText: '请上传文件',

62.

63. anchor: '90%' // anchor width by percentage

64.

65. }]

66.

67. });

68.

69.

70.

71.var winUpload = new Ext.Window({

72.

73. title: '资源上传',

74.

75. width: 400,

76.

77. height:200,

78.

79. minWidth: 300,

80.

81. minHeight: 100,

82.

83. layout: 'fit',

84.

85. plain:true,

86.

87. bodyStyle:'padding:5px;',

88.

89. buttonAlign:'center',

90.

91. items: formUpload,

92.

93. buttons: [{

94.

95. text: '上传',

96.

97. handler: function() {

98.

99. if(formUpload.form.isValid()){

100.

101. Ext.MessageBox.show({

102.

103. title: 'Please wait',

104.

105. msg: 'Uploading...',

106.

107. progressText: '',

108.

109. width:300,

110.

111. progress:true,

112.

113. closable:false,

114.

115. animEl: 'loding'

116.

117. });

118.

119. formUpload.getForm().submit({

120.

121. url:'uploadAction.action?types='+types, 122.

123. success: function(form, action){

124.

125. var objxzdz = Ext.get(uploadid).dom; 126.

127. var value = action.result.msg;

128.

129. objxzdz.value = value;

130.

131. Ext.Msg.alert('成功','上传成功.'); 132.

133. winUpload.hide();

134.

135. },

136.

137. failure: function(form, action){ 138.

139. //... action生成的json{msg:上传失败},页面就可以用action.result.msg得到非常之灵活

140.

141. Ext.Msg.alert('Error', action.result.msg);

142.

143. }

144.

145. })

146.

147. }

148.

149. }

150.

151. },{

152.

153. text: '取消',

154.

155. handler:function(){winUpload.hide();}

156.

157. }]

158.

159. });

160.

161.//*****************************************上传的公共js************************************************************* **//

162.

163.现在已经封装完毕了,我们看看在页面上如何调用

164.openUpload("txt-xls-doc-docs-pds","xzdzid");

165.就这一句话,嘿嘿,简单吧?第一个参数为允许上传的类型,第二个参数为上传后地址要绑定到哪个控件(是该控件的id)

166.

167.action的代码还是贴下吧

168.

import java.io.File;

169.

170.import java.io.FileInputStream;

171.

172.import java.io.FileOutputStream;

173.

174.

175.

176.import org.apache.struts2.ServletActionContext;

177.

178.

179.

180.import https://www.doczj.com/doc/b87359759.html,mon;

181.

182.import https://www.doczj.com/doc/b87359759.html,mon.util.Constants; 183.

184.import https://www.doczj.com/doc/b87359759.html,mon.util.FileOperate; 185.

186.import https://www.doczj.com/doc/b87359759.html,mon.util.VeDate;

187.

188.

189.

190./**

191.

192. * 上传的公共方法

193.

194. *

195.

196. * @author sam.zhang

197.

198. *

199.

200. */

201.

202.public class UploadAction extends ExtJsonActionSuport { 203.

204.

205.

207.

208. *

209.

210. */

211.

212. private static final long serialVersionUID = 1L; 213.

214.

215. //和前台的名字一样,这里约定是 upload

216. private File upload;

217.

218.

219.

220. private String uploadContentType;

221.

222.

223.

224. private String uploadFileName;

225.

226.

227.

228. private String savePath;

229.

230.

231.

232. // 存放允许上传的后缀名

233.

234. private String types;

235.

236.

237.

238. public String getSavePath() {

239.

240. return savePath;

241.

242. }

243.

244.

245.

246. public void setSavePath(String savePath) {

247.

248. this.savePath = savePath;

249.

251.

252.

253.

254. public File getUpload() {

255.

256. return upload;

257.

258. }

259.

260.

261.

262. public void setUpload(File upload) {

263.

264. this.upload = upload;

265.

266. }

267.

268.

269.

270. public String getUploadContentType() {

271.

272. return uploadContentType;

273.

274. }

275.

276.

277.

278. public void setUploadContentType(String uploadContentT ype) {

279.

280. this.uploadContentType = uploadContentType; 281.

282. }

283.

284.

285.

286. public String getUploadFileName() {

287.

288. return uploadFileName;

289.

290. }

291.

292.

293.

294. public void setUploadFileName(String uploadFileName) {

295.

296. this.uploadFileName = uploadFileName;

297.

298. }

299.

300.

301.

302. public String getTypes() {

303.

304. return types;

305.

306. }

307.

308.

309.

310. public void setTypes(String types) {

311.

312. this.types = types;

313.

314. }

315.

316.

317.

318. @SuppressWarnings("deprecation")

319.

320. public String execute() throws Exception {

321.

322. String msg = "";

323.

324. FileOperate fo = new FileOperate();

325.

326.

327.

328. String sid = VeDate.getNo(4);

329.

330.

331.

332. this.savePath = "/updownFiles";

333.

334.

335.

336. try {

337.

338.

339.

340. // ...获取文件后缀名

341.

342. String ext = fo.getFileExt(getUploadFileName() );

343.

344.

345.

346. if ("".equals(this.types)

347.

348. || Common.indexofString(this.types, "-") == -1) {

349.

350. msg = "上传失败";

351.

352. this.setJsonString("{success:false,msg:'"

+ msg + "'}");

353.

354. return SUCCESS;

355.

356. }

357.

358.

359.

360. // ...判断上传的文件是否合法

361.

362. boolean istrue = FileOperate.trueExt(this.type s.split("-"), ext);

363.

364. if (!istrue) {

365.

366. msg = "您上传的文件格式不正确,正确格式为" + this.types;

367.

368. this.setJsonString("{success:false,msg:'"

+ msg + "'}");

369.

370. return SUCCESS;

371.

372. }

373.

375.

376. // ...文件存放的位置

377.

378. String sPath = ServletActionContext.getRequest ().getRealPath(

379.

380. this.getSavePath())

381.

382. + Constants.FILESPARA

383.

384. + sid.substring(0, 4)

385.

386. + Constants.FILESPARA

387.

388. + sid.substring(4, 6)

389.

390. + Constants.FILESPARA;

391.

392.

393.

394. // ...保存在数据库的路径

395.

396. String filePath = this.savePath + "/" + sid.su bstring(0, 4) + "/"

397.

398. + sid.substring(4, 6) + "/" + sid + ".

" + ext;

399.

400.

401.

402. // 如果目录不存在则创建它

403.

404.

405.

406. fo.createFolder(sPath);

407.

408.

409.

410. FileOutputStream fileOutputStream = new FileOu tputStream(sPath

411.

412. + sid + "." + ext);

413.

415.

416. FileInputStream fileInputStream = new FileInpu tStream(getUpload());

417.

418. // ...

419.

420. byte[] buffer = new byte[1024];

421.

422. int len = 0;

423.

424. while ((len = fileInputStream.read(buffer)) >

0) {

425.

426. fileOutputStream.write(buffer, 0, len);

427.

428. }

429.

430. this.setJsonString("{success:true,msg:'" + fil ePath + "'}");

431.

432. } catch (Exception e) {

433.

434. this.setJsonString("{success:false}");

435.

436. e.printStackTrace();

437.

438. }

439.

440. return SUCCESS;

441.

442. }

443.

444.

445.

446.}

447.

448.

449.这里就大致贴贴一下吧,如果看不懂的话把struts2学习下就ok了,这里不一定后台一定是java的,

关键是

Jscript代码

1.url:'uploadAction.action?types='+types,这里会指定后台的请求地

文件传输系统的设计与实现.

JISHOU UNIVERSITY 专业课课程论文 文件传输系统的设计与实现题目: 作者: 学号: 所属学院:信息科学与工程学院 专业年级:计算机科学与技术 总评分: 完成时间:

文件传输系统的设计与实现 摘要 互联网的一大特点是实现信息共享,文件传输是信息共享的十分重要的内容之一。随之出现了许多FTP服务器来共享一些信息资源,编写一个操作简单,方便的FTP客户端来下载这些资源受到了人们的极大的欢迎。 FTP是一种用于在网上传输文件的协议,从原理上说,FTP是一个客户/服务器模式的应用协议。它用两个连接来实现:一个是控制连接,用来连接服务器和实现文件操作;一个是数据连接,用来实现数据传输。FTP的实现核心是命令/应答模式,FTP客户端将用户的所有FTP相关请求都转化为FTP服务器可识别的命令,然后发送到服务器,并接收和处理执行完毕后服务器传回的应答。 本程序是一个小型FTP服务器系统,实现了FTP服务器所应该具备的大多数功能,包括用户的登录,文件的上传、下载、删除,选择数据传输模式、目录选择等,并给出相应的提示。通过该程序的开发,基本上实现了一个FTP服务器所应该具有的功能,能够解释一般的FTP命令,并且符合RFC59规范。 本程序采用VC++6.0作为开发工具,设计步骤采用自顶向下的方法。 关键词:客户端;服务器;下载;上传;FTP

目录 第一章引言 (1) 1.1课题背景及意义 (1) 1.2课题研究现状 (1) 1.3研究内容 (2) 第二章FTP协议与原理 (3) 2.1 FTP简介 (3) 2.2 FTP的工作原理 (3) 2.3 FTP运行原理 (4) 2.4 FTP文件传输连接类型 (4) 第三章开发环境及工具介绍 (6) 3.1 C语言概述 (6) 3.2 VC++介绍 (6) 3.3 VC++6.0集成环境介绍 (6) 第四章FTP服务器需求分析 (8) 4.1 FTP文件传输的需求 (8) 4.2应解决的问题 (9) 4.3功能分析 (9) 第五章系统设计与实现 (10) 5.1功能要求 (10) 5.2开发工具 (10) 5.3主要功能与实现 (11) 5.4 菜单栏功能模块 (11) 5.5 查看功能模块 (13) 第六章系统测试 (18) 6.1系统可能出现的问题与不足 (18) 6.2 采用的测试类型 (18) 6.3 测试的过程与结果分析 (18) 总结 (20) 参考文献 (21)

说明函格式,说明函格式范文

说明函格式,说明函格式范文 【爱文库】核心用户上传 说明函格式,说明函格式范文 尊敬的媒体朋友: 海辰机构作为一汽-大众“大众”品牌全国唯一指定公关代理公司,现就2006 年8 月1 0 日《京华时报》报道一汽-大众速腾后刹车油泵问题的进展情况向媒体朋友通报如下: 1.一汽-大众领导看到报道后非常重视,立即启动危机处理应急机制,在两个 小时内查明:到目前为止在全国范围尚没有收到一例关于后刹车盘油泵问题的投诉; 2.文中提到的用户情况为:该用户主观感觉车后部有异响,委托其修车的朋友检查,该朋友建议去4S 店做后刹车泵检查是否漏油,经一汽-大众特约维修服务 站亚之杰检查未发现任何问题; 3.一汽-大众有关方面就文中提及另外车辆问题正在努力联系记者请求提供车 架号以便一汽-大众澄清事实、查明原因,更好地为客户解决问题; 4.一汽-大众多年以来一直秉承“用户第一”的理念,特别是在今年营销变革 实施之后成立了“质量安全保障部”负责产品质量、安全方面的工作。因《京华时报》反应的问题涉及到汽车安全, Jay_h1218奉上 【爱文库】核心用户上传 根据一汽-大众相关规定:涉及安全问题必须24 小时之内解决。目前相关工 作已经全面启动,如有更新进展我们会随时通报媒体朋友。一汽-大众对媒体朋友多年来的支持与关注在此表示深深的感谢! 佛山市顺德区华达电器制造有限公司2003年在中山市黄圃镇新丰北路6号新 建一座工业园,因新工业园地处中山,2003 年6 月在中山市工商行政管理局注册 为“中山欧柏电器有限公司”,因公司发展需要,2008 年12 月更名为“中山欧 盈光电科技有限公司”。 “佛山市顺德区华达电器制造有限公司”及“中山欧盈光电科技有限公司”的股东是一致的,所以我公司对外开展业务时,以两家公司中任意一家公司的名义,都互为承担一切责任!特此说明! 佛山市顺德区华达电器制造有限公司(公章) 中山欧盈光电科技有限公司(公章) 2009 年12 月29 日 Jay_h1218奉上

上传报名电子附件说明

附件3: 上传报名电子附件说明 注:学员提供报名电子附件时,须以姓名为文件夹,文件夹内包括以身份证号+材料名称(如身份证号+照片)命名的上传附件名。分子公司、直属企业汇总后,打包发送给集团公司人力资源部联系人赵洲洋。 1.学员电子照片的采集 采集的照片电子图像为彩色图像,按照1人1个图像文件的方式存储。图像文件采用“身份证号”命名,格式为“.jpg”具体参数如下: 扫描分辨率设定为300dpi 图片尺寸(像素):宽480×高640 文件大小:≥30KB且≤60KB 文件格式:jpg 被摄人服装:白色或浅色系 照片底色:蓝色 如下图所示: 只能采用数码照相机拍摄,数码相机要求像素不少于3百万。 2.身份证原件电子扫描件

采集的身份证原件为彩色图像,按照1人1个图像文件的方式存储。图像文件采用“身份证号”命名,格式为“.jpg”。具体参数如下: 扫描分辨率设定为150dpi 图片尺寸:保持原始证件大小(参考数据宽560×高395) 文件大小:≤50KB 学员如有更名情况,相应证明材料与身份证复印件一起扫描成一张图片,命名方式与身份证扫描件命名方式相同。 扫描分辨率设定为150dpi 图片尺寸:保持原始证件大小 文件大小:≤120KB 3.入学时最高学历证书原件的电子扫描件 采集的最高学历证书为彩色图像,按照1人1个图像文件的方式存储。图像文件采用“身份证号”命名,格式为“. jpg”。具体参数如下: 扫描分辨率设定为100dpi 图片尺寸:保持原始证件大小(参考数据宽1300×高900)文件大小:≤100KB 文件格式:jpg 4.其他材料 采集的其他材料为彩色图像,按照1人1个图像文件的方式存储。图像文件采用“身份证号”命名,格式为“. jpg”。具体参数如下: 扫描分辨率设定为100dpi 图片尺寸:保持原始证件大小(参考数据宽1300×高900) 文件大小:≤120KB 文件格式:jpg

html5 上传文件功能的代码实现

html5 上传文件功能的代码实现 Html5代码:

上传者:
Javascrpit代码: "); return; } //满足条件进行文件的上传需要注意的是upload使我们webRoot文件夹下的一个目录 fil.saveAs("upload/"+fil.getFileName()); %> 至此我们就完成了一个最简单的图片上传示例。我们部署测试下! 文件上传页面 我们选择一个视频文件

上传附件的存储方式介绍--V10.3

K/3系统上传附件的存储方式介绍 本期概述 ●本文档适用于 K/3 10.3 及以上版本 ●本文档针对K/3系统中上传附件后,附件的存储方式进行讲解,通过本文档的学习 可以了解附件上传时文件的存储位置以及不同存储方式的区别。 版本信息 ●2014年01月31日 V1.0 编写人:黄俊锋 ●2014年02月27日 V2.0 修改人:陈研鑫 ●2014年03月06日 V3.0 修改人:袁媛 版权信息 ●本文件使用须知 著作权人保留本文件的内容的解释权,并且仅将本文件内容提供给阁下个人使用。对于内容中所含的版权和其他所有权声明,您应予以尊重并在其副本中予以保留。您不得以任何方式修改、复制、公开展示、公布或分发这些内容或者以其他方式把它们用于任何公开或商业目的。任何未经授权的使用都可能构成对版权、商标和其他法律权利的侵犯。如果您不接受或违反上述约定,您使用本文件的授权将自动终止,同时您应立即销毁任何已下载或打印好的本文件内容。 著作权人对本文件内容可用性不附加任何形式的保证,也不保证本文件内容的绝对准确性和绝对完整性。本文件中介绍的产品、技术、方案和配置等仅供您参考,且它们可能会随时变更,恕不另行通知。本文件中的内容也可能已经过期,著作权人不承诺更新它们。如需得到最新的技术信息和服务,您可向当地的金蝶业务联系人和合作伙伴进行咨询。 著作权声明著作权所有 2014 金蝶软件(中国)有限公司。 所有权利均予保留。

目录 1. 问题背景 (3) 2. 问题分析 (3) 2.1 数据库式存储 (4) 2.2 硬盘式存储 (6) 3. 总结 (8)

1. 问题背景 金蝶K/3业务系统存储的资料,除常见的数字和文字以外,还会存在图片、文档等附件信息,如基础资料的核算项目设置时,就可以添加附件属性,这些附件在金蝶K/3系统中如何进行存储管理,会直接影响系统环境的部署。例如,当附件上传后存在磁盘上时,那么重装系统必定需要先进行文件的备份;如果附件上传后直接存储在数据库中,那么重装系统时只需要做好数据库备份即可。 本文档将详细介绍金蝶K/3产品各阶段,附件上传后存储方式的变化,以及各存储方式的优缺点。 2. 问题分析 在K/3 V13.1版本核算项目属性设置中,上传附件的存储方式分为两种,数据库式存储和硬盘式存储,如图-1所示。首先整体介绍一下【附件管理】功能,然后再分别介绍两种存储方式。 图-1 附件管理 附件管理界面字段说明: 保存方式:分“数据库式存储”和“硬盘式存储”两种方式选择; 附件说明:对附件进行简单说明,例如可输入附件名称,也可不维护; 附件文件名:附件选择字段,用于浏览选择到需上传的附件,附件文件格式没有要求,但限定大小不能超过50MB; 文件大小:附件的大小,单位:KB,附件上传后系统自动反填; 上传人:当前登录K/3系统的操作用户,附件上传后系统自动反填; 上传时间:附件成功上传的时间,附件上传后系统自动反填;

ASP NET MVC文件上传简单示例

https://www.doczj.com/doc/b87359759.html,实现MVC处理文件的上传下载功能实例教程 上传于下载功能是程序设计中非常常见的一个功能,在https://www.doczj.com/doc/b87359759.html,程序开发中有着非常广泛的应用。本文就以实例形式来实现这一功能。 一、概述 如果你仅仅只有https://www.doczj.com/doc/b87359759.html, Web Forms背景转而学习https://www.doczj.com/doc/b87359759.html, MVC的,我想你的第一个经历或许是那些曾经让你的编程变得愉悦无比的服务端控件都驾鹤西去了.FileUpload就是其中一个,而这个控件的缺席给我们带来一些小问题。这篇文章主要说如何在https://www.doczj.com/doc/b87359759.html, MVC中上传文件,然后如何再从服务器中把上传过的文件下载下来. 二、实现方法 1.文件上传 在Web Forms中,当你把一个FileUpload控件拖到设计器中,你或许没有注意到在生成的HTML中会在form标签中加入一条额外属性enctype="multipart/form-data". 而FileUpload 控件本身会生成为,在MVC的view里,有许多种方法可以做到同样 效果,第一种的HTML如下: ? 1 2 3 4


注意form标签已经包括了enctype标签,而method属性则设为”post”,这样设置并不多于 因为默认的提交时通过HTTP get方式进行的。下面这种方式,使用Html.BeginForm()扩展 方法,会生成和上面同样的HTML: ? 1 2 3 4 5 6 <% using (Html.BeginForm("", "home", FormMethod.Post, new {enctype="multipart/form-data"})) {%>
<% }%> 注意标签的name属性,我们在后面再讨论 OK,现在我们可以浏览本地文件然后通过Upload提交按钮将文件提交到服务器端,下一步就是在服务器端处理上传的文件,在使用fileUpload控件时,你可以很轻松的通过FileUpload 的hasFile方法来查看文件是否被上传。但是在https://www.doczj.com/doc/b87359759.html, MVC中貌似就不是这么方便了,你 会和原始的HTTP更接近一些,然而,一个扩展方法可以处理这些: ?

File文件类型

1.file参数类型 前几次课我们已经简单学习过怎样在LoadRunner中对数据进行参数化,今天我们再深入学习LoadRunner的数据池技术。 对于file类型的参数,如下图所示: 回顾一下,我们前两天涉及到的取下一数据方式和更新值的方式: 其中: Select next row: Sequential:每个VU按照顺序读取。每一个虚拟用户都会按照相同的顺序读取。 Random:每个VU随机读取一个。 Unique:每个VU顺序取唯一的值。注意:使用该类型必须注意数据池中数据充足。 Same Line As 某个参数(比如Name):和前面定义的参数Name 取同行的记录。通常用在有关联性的数据上面。 Update value on: Once 在所有的反复中都使用同一个值 each iteration 每次反复都要取新值 each occurrence 只要发现该参数就要重新取值,也就是如果一个action中有多个该参数,每遇到一个就要重新取一个值。 图表形式如下:

2.为Vuser分配参数块 Allocate Vusers value in the Controller (为Vuser分配参数块),有两种分配参数块得方式: Automatically allocate block size(自动分块):系统自动为参数分块大小 Allocate ** values for each Vuser(分配**块给每个Vuser):手动分块 自动分块示意图: 块大小: 一个Vuser运行完毕所需要的参数的个数 Vuser分到的参数不够,将在自己分的块中进行取值。如:Vuser n只分到两个参数,Vuser n会按照when out of value的方式取值,如果是Continue with last value,Vuser n的参数取值是An,An+1,An+1,An+1,如果选择的是Continue in a cyclic manner,Vuser n的参数取值是An,An+1,An,An+1(块内循环),而Vuser n+1因为没有分到参数会报错 所需参数总数=块大小* Vuser个数 块大小计算:如Each iteration(每次迭代),则=迭代次数,Each occurrence(每次遇见),则=迭代次数*一次迭代出现次数 手动分块示意图: 假设一个Vuser执行完迭代需要4个值,手动分块块大小为3 按照分块的方式分参数 块大小为设定大小 Vuser分到的参数不够,将在自己分的块中进行取值:例如:因为每个Vuser需要4个参数,所以每个Vuser参数都不够,则Vuser2为例,如果选择的是Continue with last value,Vuser 2的参数取值是A4,A5,A6,A6,如果选择的是Continue in a cyclic manner,Vuser 2的参数取值是A4,A5,A6,A4(块内循环) 所需参数总数=手动分配块大小* Vuser个数 Group Name(组名):用Vuser组的名称替换参数。创建方案时,要指定Vuser组的名称,否则运行VuGen的脚本时,组名始终为“无”。 从可用格式中选择其中一种或者新建一种格式,来指定参数字符串的长度。 Load Generator Name:在实际运行中,LoadRunner 使用该虚拟用户所在Load Generator 的机器名来代替。 Iteration Number:在实际运行中,LoadRunner 使用该测试脚本当前循环的次数来代替。 Random Number:随机数。在属性设置中可以设置产生随机数的范围。如查询抽样数据。 Unique Number:唯一编号。在属性设置中可以设置第一个数以及递增的数的大小。 如:某个文本框能接受的最大数为99。当使用该参数类型时,设置第一个数为1,递增的数为1,但100 个虚拟用户同时运行时,第100 个虚拟用户输入的将是100,这样脚本运行将会出错。使用该参数

相关主题
文本预览
相关文档 最新文档