我在Rails 3.2應用中使用blueimp jquery-file-upload,通過jquery-fileupload-rails寶石。如何使用jquery文件上傳來調整圖像客戶端的大小
我正嘗試在上傳之前在客戶端調整圖像大小,但遇到文檔問題。我的代碼如下。目前上傳完美,但圖像不會調整大小。
什麼是通過jquery-file-upload調整圖像大小的正確語法。
(基於this和this文檔中的CoffeeScript中所示的兩種方法。無論是對我的作品。)
#Coffeescript
jQuery ->
if $("#new_asset").length
$("#new_asset").fileupload
dataType: "script"
add: (e, data) ->
types = /(\.|\/)(jpe?g|png)$/i
file = data.files[0]
if types.test(file.type) || types.test(file.name)
data.context = $(tmpl("template-upload", file))
$('#progress-container').append(data.context)
jqXHR = data.submit()
$("button.cancel").click (e) ->
jqXHR.abort()
else
alert("#{file.name} is not a jpeg or png image file")
progress: (e, data) ->
if data.context
progress = parseInt(data.loaded/data.total * 100, 10)
data.context.find('.bar').css('width', progress + '%')
stop: (e, data) ->
$('.upload').hide()
process: [
action: "load"
fileTypes: /^image\/(gif|jp?g)$/
maxFileSize: 20000000 # 20MB
,
action: "resize"
imageMaxWidth: 1500
imageMaxHeight: 1500
,
action: "save"
]
dropZone: $(".dropzone")
sequentialUploads: true
disableImageResize: /Android(?!.*Chrome)|Opera/.test(window.navigator and navigator.userAgent)
imageMaxWidth: 1500
imageMaxHeight: 1500
downloadTemplateId: null
#application.js
//= require jquery-fileupload
編輯
根據馬坦薩的回答,add
回調在我的代碼阻止任何處理函數被自動調用。所以,我想我需要做的是這樣
...
add: (e, data) ->
$.each data.result, (index, file) ->
// processing code goes here
但我有很多的麻煩制定出正確的語法或使可用的引導意義。
如何將調整大小處理應用到添加回調中的每個文件?
謝謝@dannio。這看起來很有希望。看看你的SO問題中的代碼也很有幫助。 http://stackoverflow.com/questions/22753646/using-jquery-fileupload-with-coffeescript-resizing-image-when-using-add-callba。但是,當我上傳文件時,出現控制檯錯誤。 「Uncaught type error。Undefined is not a function」與此行有關:'return current_data.fileupload('process',data);'。任何想法可能是什麼問題? –
好吧,似乎我的應用程序中有一個與最新版本衝突的js文件的過時版本。擺脫這一點,類型錯誤消失。在檢查已上傳的文件後,它們現在都按預期調整大小!非常非常高興終於解決了這個問題。謝謝謝謝!!! –
我不能滿足這個答案! Thx @dannio – pangratz