jQuery文件上载不显示预览

时间:2012-10-15 17:25:26

标签: javascript jquery file-upload coffeescript

jQuery File Upload插件当前不显示所选文件。有谁知道我如何解决这个问题?

我实施了'自定义'模板(见下文);注意我不需要显示以前上传的材料,因此没有下载模板。

我已经检查(通过日志记录)正在调用add回调并且正在调用uploadTemplate函数并返回预期值 - 由于某种原因,这些值根本没有被追加到演示文稿表。

$('#fileupload').fileupload(
  acceptFileTypes: /(\.|\/)(gif)$/i
  uploadTemplateId: null
  downloadTemplateId: null
  uploadTemplate: (obj) ->
    rows = $()
    $.each(obj.files, (idx, file) ->
      temp = "<tr class='template-upload fade'><td class='preview'><span class='fade'></span></td><td class='name'></td>'<td class='size'></td>"
      if (file.error)
        temp += "<td class='error' colspan='2'></td>"
      else
        temp += "<td><div class='progress'><div class='bar' style='width:0%;'></div></div></td><td class='start'><button>Start</button></td>"
      temp += "<td class='cancel'><button>Cancel</button></td></tr>"
      row = $(temp)
      row.find('.name').text(file.name)
      row.find('.size').text(obj.formatFileSize(file.size))
      rows = rows.add(row)
      )
    return rows
  downloadTemplate: ->
    return $()
)

更新10/16/2012 我在fileupload的初始化中添加了以下内容:

  process: [{action: 'load', fileTypes: /^image\/(gif|jpeg|png)$/, maxFileSize: 2000000}, {action: 'resize', maxWidth: 1920, maxHeight: 1200, minWidth: 800, minHeight: 600}, {action: 'save'}]

哪个会启动加载图片的尝试,但不幸的是,尝试会导致以下错误。有谁知道原因是什么和/或如何解决它?

Uncaught TypeError: undefined (loadImage) is not a function jquery.fileupload-fp.js:87

4 个答案:

答案 0 :(得分:8)

问题是依赖项的加载顺序;需要在其他核心依赖项之前加载Load Image

答案 1 :(得分:5)

以正确的顺序加载依赖项解决了我的问题

  • load-image / load-image.js
  • 负载图像/负载图像ios.js
  • load-image / load-image-orientation.js
  • 负载图像/负载图像meta.js
  • load-image / load-image-exif.js
  • 负载图像/负载图像的EXIF-map.js

    (或使用缩小版)

  • jquery.iframe-transport.js

  • jquery.fileupload.js
  • jquery.fileupload-process.js
  • jquery.fileupload-image.js
  • jquery.fileupload-audio.js
  • jquery.fileupload-的Video.js
  • jquery.fileupload-validate.js
  • jquery.fileupload-ui.js tmpl.js
  • 画布到blob.js

答案 2 :(得分:0)

您是否安装了为JQuery文件上载列出的所有要求?

根据README,其中一个可选要求是

JavaScript Load Image function

答案 3 :(得分:0)

我的问题

它在Mac上工作正常,但在Windows上没有在FireFox和IE中工作

Partialy Fixed

我发现bootstrap.js在我的情况下被包含两次,一个在头文件中,第二次在jquery文件上传插件中。删除头文件中的一个将其修复到预览在页面刷新时显示的程度,但它们仍然没有显示(从jquery插件中删除bootstrap.js并没有解决问题顺便说一句)

完全固定

再挖掘一些并试图注释掉可能导致问题(冲突)的.js文件。通过从头文件中删除typeahead.bundle.min.js完全解决了我的问题。当添加图像而不需要新鲜页面时,预览显示在IE和Firefox中。

我还评论了页面上不需要的jquery-ui.js btw,发现了一个重复的js文件以及清理过程的一部分。

密码错误

如果要将上传的文件存储在数据库中,如果数据库凭据错误,它将显示上载过程但不会看到预览。修复数据库凭据将修复预览问题。