Jquery ajax表单在grails文件提交中冻结
我正在尝试使用AjaxForm在grails应用程序中异步提交文件。对于小文件,它工作得很好,但是当我尝试处理大文件时,ajaxForm不会触发函数错误或成功。在这两种情况下(大文件和小文件),所有文件都成功地存储在服务器端。这是我的代码:Jquery ajax表单在grails文件提交中冻结,jquery,ajax,grails,ajaxform,Jquery,Ajax,Grails,Ajaxform,我正在尝试使用AjaxForm在grails应用程序中异步提交文件。对于小文件,它工作得很好,但是当我尝试处理大文件时,ajaxForm不会触发函数错误或成功。在这两种情况下(大文件和小文件),所有文件都成功地存储在服务器端。这是我的代码: var opts = { beforeSubmit: AntesEnvio, error: ErrorEnvio, uploadProgress: Progres
var opts = {
beforeSubmit: AntesEnvio,
error: ErrorEnvio,
uploadProgress: ProgresoEnvio,
success: CorrectoEnvio
}
$('div#modal-cargar-ficheros .upload-form').ajaxForm(opts)
function CorrectoEnvio(){
do somethings ...
}
function ErrorEnvio(){
do somethings ...
}
谁能帮帮我!!
提前谢谢
================编辑==========================
我尝试在不使用AJAX的情况下测试应用程序,同样,服务器处理所有数据,但不响应。我检查了服务器端的数据库和文件,一切正常,但当上传完文件后,浏览器会说:等待本地主机。。。永远不会结束
我的普惠制表格:
<g:uploadForm class="upload-form" method="POST"
controller="fileManager" action="upload">
<div class="modal-body">
<div class="area-msgs">
</div>
%{-- Selector de Ficheros/Carpeta oculto --}%
<input name="files[]" class="upload" type="file" id="upload-files" webkitdirectory />
<div class="area-seleccion">
<div class="boton-select pull-left">
<div id="select-files" class="btn btn-large" >
<span class="icon-folder"></span>
</div>
</div>
<div class="texto-cant pull-left">0 ficheros seleccionados</div>
</div>
</div>
<div class="modal-footer">
<g:submitButton name="btn-submit-files"
class="btn btn-primary"
value="Enviar">
</g:submitButton>
</div>
</g:uploadForm>
有什么帮助或建议吗?您提供的信息不够。如果没有js错误,请通过进入控制台确认是否使用chrome。谢谢回答,我已经更新了我的问题。
def upload() {
//Recibo los datos de la vista
//Si no existe un directorio para el usuario
//en el servidor lo creo
def fullPath = 'uploads' +
File.separator +
session.user.userid +
File.separator
def userFolder = new File(fullPath)
if (!userFolder.exists()){
userFolder.mkdirs()
}
//Si vienen el (los) fichero (os) hago el envío
//al servidor
def resp = [status: 'OK']
request.getFiles("files[]").each { file ->
def documentItem = new Document()
documentItem.docName = file.originalFilename
// Genero un numero aleatorio para evitar
// nombres duplicados
def num = (new Random()).nextInt(99999)
def fileName = num + '_' + file.originalFilename
//Si existe un fichero con ese nombre
//vuelvo a intentarlo
while (new File(fullPath + fileName).exists()){
num = (new Random()).nextInt(99999)
fileName = num + '_' + file.originalFilename
}
documentItem.fullPath = fullPath + fileName
documentItem.size = FileUtilService.humanSize(file.getSize())
//Una vez creado el nombre unico guardo
//el fichero en el servidor
file.transferTo( new File(documentItem.fullPath) )
if (!documentItem.save()){
resp = [status: 'Error']
}
} // --> Fin de recorrer cada fichero subido
render resp as JSON
}