ZBLOG

function OutsourceFileUploadNew(init) init = init ll{}; init.title = lang('upload attachment'),var self = new Window(init).setWidth('40%').setDestroyOnHide(true), self.type ='0utsourceFileUploadNew'.self.attr("id",self.type+ ggNamespace.getCounter...

你的代码似乎是一个用于上传文件的 JavaScript 组件,但在多个地方存在语法错误和不完整的部分。以下是修复和补充后的版本:

  1. function OutsourceFileUploadNew(init) {
  2. init = init || {};
  3. init.title = lang('upload attachment');
  4. var self = new Window(init).setWidth('40%').setDestroyOnHide(true);
  5. self.type = '0utsourceFileUploadNew';
  6. self.attr("id", self.type + ggNamespace.getCounter());
  7. self.fileName = new SmallTextItem({
  8. title: lang("file name"),
  9. name: "uploadfile"
  10. }).setType("file")
  11. .setAccept(".jpg,.jpeg,.png,.gif,.bmp")
  12. .setRequired(true);
  13. // 添加文件类型验证
  14. self.fileName.addChangeHandler(function() {
  15. var extMatch = self.fileName.getValue().match(/\.([^\.]+)$/);
  16. if (extMatch) {
  17. var ext = extMatch[1].toLowerCase();
  18. switch(ext) {
  19. case 'jpg':
  20. case 'jpeg':
  21. case 'png':
  22. case 'gif':
  23. case 'bmp':
  24. break;
  25. default:
  26. // 提示无效附件类型
  27. new Bootbox().alert(lang('warn'), lang('invalid file type! Only supports jpg, jpeg, png, gif, bmp'));
  28. self.fileName.setValue('');
  29. return; // 结束函数执行
  30. }
  31. }
  32. });
  33. self.uploadButton = new Button({ title: lang('upload'), type: 'primary' });
  34. self.cancel = new Button({ title: lang('cancel'), type: 'default' });
  35. self.content = new VLayout();
  36. self.footer = new HLayout();
  37. self.form = new DynamicForm();
  38. // 设置表单项
  39. self.uploadFileHandler = ggNamespace.functions.AgencyOutsideImportFileUploadWindow.UploadFileHandler;
  40. self.form.setItems(self.fileName);
  41. // 添加内容到布局
  42. self.content.addMember(self.form);
  43. // 添加按钮到底部布局
  44. self.footer.addMember(self.uploadButton).addMember(self.cancel);
  45. // 填充空间设置行间距
  46. self.footer.fillSpaceBefore();
  47. self.footer.setRowSpacing('5px');
  48. // 设置窗口内容与脚部
  49. self.setContent(self.content);
  50. self.setFooter(self.footer);
  51. // 上传按钮点击事件处理
  52. self.uploadButton.addClickHandler(function() {
  53. self.uploadFileHandler(init);
  54. });
  55. // 取消按钮点击事件处理
  56. self.cancel.addClickHandler(function() {
  57. self.hide();
  58. });
  59. return self;
  60. }
  61. // 文件上传处理函数实现
  62. ggNamespace.functions.AgencyOutsideImportFileUploadWindow.UploadFileHandler = function() {
  63. var self = this;
  64. let arr = [];
  65. if (self.form.validate()) {
  66. var formData = new FormData($('#' + this.form.attr("id")).find('form')[0]);
  67. formData.append("id", init.id);
  68. var url="../d/exemptionReduction/saveAttachment";
  69. // 禁用上传和取消按钮以防止重复提交
  70. self.uploadButton.disable();
  71. self.cancel.disable();
  72. $.ajax({
  73. url: url,
  74. method: 'post',
  75. data: formData,
  76. enctype: 'multipart/form-data',
  77. processData: false,
  78. contentType: false,
  79. dataType: 'json',
  80. success: function(result) {
  81. console.log('result', result);
  82. if (result.success) {
  83. new Bootbox().setWidth('15vw').alert(lang('alert'), lang('succeed'));
  84. arr.push({
  85. fileName: result.data.fileName,
  86. obsPath: result.data.obsPath,
  87. tableId: result.data.tableId
  88. });
  89. // 触发成功事件并隐藏窗口
  90. self.trigger('0utsourceContractImportFileUploadNew import success', arr);
  91. self.hide();
  92. } else {
  93. new Bootbox().setWidth('15vw').alert(lang('alert'), result.message);
  94. }
  95. }
  96. }).fail(function(xhr, ajaxOptions, thrownError) {
  97. ggNamespace.showError(thrownError);
  98. });
  99. }
  100. };

修正和补充的要点:

  1. 语法错误:修复了若干处语法错误,比如括号、引号配对等问题。
  2. 文件类型检查:添加了对文件后缀名的有效性检查,如果不符合要求,会提示用户并清空输入框。
  3. AJAX 请求:确保在请求成功或失败时都能给出反馈,增加了一些日志输出。

希望这个修正能够帮助你更好地理解如何实现文件上传功能。如果有其他需求或进一步的问题,请随时告诉我!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=23030

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?