起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5986|回复: 10

[结贴] 文件上传如何自定义文件名

[复制链接]

58

主题

213

帖子

374

积分

中级会员

Rank: 3Rank: 3

积分
374
QQ
发表于 2018-2-24 17:44:52 | 显示全部楼层 |阅读模式
文件上传时想将上传文件名自定义为英文,不知道该怎么弄,请大神指点一二

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2018-2-25 09:13:21 | 显示全部楼层
在上传前修改,如果是office类型的文件,上传后可以点击编辑修改
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

58

主题

213

帖子

374

积分

中级会员

Rank: 3Rank: 3

积分
374
QQ
 楼主| 发表于 2018-2-26 09:29:41 | 显示全部楼层
是图片文件名,我想直接将中文修改成英文的
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2018-2-26 09:31:17 | 显示全部楼层
那就在上传前修改,上传过程中不能修改
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

58

主题

213

帖子

374

积分

中级会员

Rank: 3Rank: 3

积分
374
QQ
 楼主| 发表于 2018-2-26 13:27:08 | 显示全部楼层
那也可以,我就想怎么在上传前修改呢,我就是这个问题啊
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2018-2-26 13:29:05 | 显示全部楼层
手动修改文件名后再上传
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

58

主题

213

帖子

374

积分

中级会员

Rank: 3Rank: 3

积分
374
QQ
 楼主| 发表于 2018-2-26 13:57:26 | 显示全部楼层
不能输入后我用代码去修改吗?客户输入的没法确定啊
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2018-2-26 17:27:14 | 显示全部楼层
通过下面的方式在数据保存的时候修改
1.添加引用
  1. var DocUtils = require('$UI/system/components/justep/docCommon/docUtil');
复制代码

2.在model的勾选函数中定义3个实例变量
  1.         var Model = function() {
  2.                 this.callParent();
  3.                 this.docID = [];
  4.                 this.changeRows = [];
  5.                 this.docName = [];
  6.         };
复制代码

3.在data的onValueChange事件中记录改变的行和新增加的附件信息

  1.         Model.prototype.mainDataValueChange = function(event) {
  2.         //判断是附件组件关联的关系的值发生改变
  3.                 if (event.col == 'fFJ') {
  4.                         var newValue = event.newValue;
  5.                         var oldValue = event.oldValue;
  6.                         var jsonList = eval("(" + newValue + ")");
  7.                         if(jsonList && jsonList.length>0){                        
  8.                                 for (var i = 0; i < jsonList.length; i++) {
  9.                                         var docID = jsonList[i].docID;
  10.                                         //如果新增中的docID在旧值中不存在说明附件是新上传的
  11.                                         if (!oldValue || oldValue.toString().indexOf(docID) < 0) {
  12.                                                 this.docID.push(jsonList[i].docID);//把docID放到实例变量中this.docID数组中
  13.                                                 var row = event.row;
  14.                                                 //判断实例变量this.changeRows数组中不存在当前改变行时,把当前行放到this.changeRows实例变量数组中
  15.                                                 if ($.inArray(row, this.changeRows) < 0) {
  16.                                                         this.changeRows.push(row)
  17.                                                 }
  18.                                         }
  19.                                 }
  20.                         }
  21.                 }
  22.         };
复制代码

4.在data的onBeforeSave事件中修改附件组件json格式中的docName的值
  1.         Model.prototype.mainDataBeforeSave = function(event) {
  2.                 for (var i = 0; i < this.changeRows.length; i++) {
  3.                         //从实例变量中this.changeRows中获取改变的行中的附件组件关联的关系值
  4.                         var fAttachmentPicture = this.changeRows[i].val("fFJ");
  5.                         var jsonList = eval("(" + fAttachmentPicture + ")");
  6.                         if (jsonList.length > 0) {
  7.                                 for (var j = 0; j < jsonList.length; j++) {
  8.                                         var docID = jsonList[j].docID;
  9.                                         //判断docID在实例变量this.docID中修改其对应docName的值
  10.                                         var index = $.inArray(docID, this.docID);
  11.                                         if (index >= 0) {
  12.                                                 var docName = jsonList[j].docName
  13.                                                 jsonList[j].docName = docName.substring(0, docName.lastIndexOf(".") * 1) + "Modify" + docName.substring(docName.lastIndexOf("."));//给docName赋新值
  14.                                                 this.docName.push(jsonList[j].docName);//把修改后的docName的值放到实例变量this.docName数组中
  15.                                         }
  16.                                         event.source.setValue("fFJ", JSON.stringify(jsonList), this.changeRows[i]);//把修改后的json格式数据给关系赋值
  17.                                 }
  18.                         }

  19.                 }
  20.         };
复制代码

5.在data的onAfterSave中修改SA_DocNode中docName的值并通知文档服务器
  1.         Model.prototype.mainDataAfterSave = function(event) {
  2.                 var self = this;
  3.                 setTimeout(function() {
  4.                         if (self.docID.length > 0 && self.docName.length > 0) {
  5.                                 for (var i = 0; i < self.docID.length; i++) {
  6.                                 //修改SA_DocNode中的文件名以及通知文档服务器
  7.                                         DocUtils.Utils.changeDocName(self.docID[i], self.docName[i], self.getContext());
  8.                                         DocUtils.InnerUtils.syncCustomFileds(self.docID[i], self.getContext());
  9.                                 }
  10.                         }
  11.                         //清空实例变量的值
  12.                         self.docID.splice(0, self.docID.length);
  13.                         self.docName.splice(0, self.docName.length);
  14.                         self.changeRows.splice(0, self.changeRows.length);
  15.                 }, 500);

  16.         };
复制代码



远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

58

主题

213

帖子

374

积分

中级会员

Rank: 3Rank: 3

积分
374
QQ
 楼主| 发表于 2018-2-27 09:11:17 | 显示全部楼层
我就是选择文件的文本框需要这么事件处理吗?还有没有简便点的了
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35918
发表于 2018-2-27 09:12:35 | 显示全部楼层
附件组件上传文件修改文件名上面是最简单的,没有其他的方案
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-26 09:34 , Processed in 0.108111 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表