java.lang.IllegalArgumentException: Cannot invoke com.msun.costAccount.form.BaseSalaryImpFrom.setUpfile - argument type mismatchfunction BaseSalaryImp(){
alert($("#date").val());
var date=$("#date").val();
alert($("#BaseSalaryImpupfile").val());
var upfile=$("#BaseSalaryImpupfile").val();
$.ajax({
type: "POST",
url: "${ctx}/BaseSalaryImpAction.do?type=import",
data:{"pojo.opdate":date,"pojo.upfile":upfile},
success: function(result){
if(result == 0){
alert("导入失败!");
}else if(result ==1){
alert("导入成功!");
}
}
});
}
错误类型标明是参数非法,action中如何接受参数的呢?
$.ajax是不可以提交文件的,要使用插件
var options = {
url: url,
type : 'POST',
success: function (data) {
alert(data);
}
};
$("form").ajaxSubmit(options);
form表单中带着file
ajax不可以上传文件,建议使用jQuery插件ajaxFileUpload
使用jQuery插件ajaxFileUpload,百度一下即可。使用方式如下:
$.ajaxFileUpload
(
{
url: 'BillApply.aspx', //用于文件上传的服务器端请求地址
secureuri: false, //一般设置为false
fileElementId: ['fileAdd'], //文件上传空间的id属性
dataType: 'text', //返回值类型
data: {
mode: "uploadfile",
GameID: gameID,
IsNewGame: $("#isnewgame").attr("checked") ? 1 : 0
},
success: function (data, status) //服务器成功响应处理函数
{
var arr = new Array();
arr = data.split("#");
if (arr[0] == '0') {
$('#fileAdd').val("");
layer.alert(arr[1], { icon: 2, title: '错误' });
return false;
}
else if (arr[0] == '1') {
$("#gameserver").text(arr[2]);
return false;
//layer.alert(data.msg, { icon: 1, title: '成功' });
}
},
error: function (data, status, e)//服务器响应失败处理函数
{
alert(e);
}
}
)
},
直接用媒体标签提交也是可以的
ajaxSubmit
用这个库就可以上传文件了
你可以百度,有很多都能收到
uploadify插件
//前台
$(function() { $("#uploadify").uploadify({ 'swf' : "/uploadify/uploadify.swf", 'uploader' : "{:url('imports')}", 'buttonText' : '图片上传', 'buttonClass' : 'btn btn-success', 'fileTypeDesc' : 'Image Files', 'fileTypeExts' : '*.gif; *.jpg; *.png', 'fileObjName' : 'img', 'queueID' : 'fileQueue', 'onUploadSuccess' : function(file, data, response) { // alert(data); var src=data; var img="<img width='200px' height='100px' src='"+src+"'>"; $("#imgtext").attr('value',src); $("#img").html(img); }, }); $('#uploadify-button').removeAttr('style'); });//后台
//uploadify 上传图片
public function imports(){
$file = request()->file('img');
$info = $file->move(ROOT_PATH . '/public/uploads');
if($info){
echo $info->getSaveName();
}else{
echo $file->getError();
}
}
//前台
<script>
$(function() {
$("#uploadify").uploadify({
'swf' : "/uploadify/uploadify.swf",
'uploader' : "{:url('imports')}",
'buttonText' : '图片上传',
'buttonClass' : 'btn btn-success',
'fileTypeDesc' : 'Image Files',
'fileTypeExts' : '*.gif; *.jpg; *.png',
'fileObjName' : 'img',
'queueID' : 'fileQueue',
'onUploadSuccess' : function(file, data, response) {
// alert(data);
var src="__PUBLIC__/uploads/"+data;
var img="<img width='200px' height='100px' src='"+src+"'>";
$("#imgtext").attr('value',src);
$("#img").html(img);
},
});
$('#uploadify-button').removeAttr('style');
});
</script>
可以使用angular的文件上传插件
https://github.com/nervgh/angular-file-upload
可以使用ajax,不过要使用h5的一个formData类,不知道,你支不支持h5,你可以看看这个
看着这个对你有没有帮助
ajax异步批量上传文件
要么使用插件,要么使用假axaj刷新
上传文件: p>
<br> function doUpload() {<br><br> var formData = new FormData($( "#uploadForm" )[0]);<br><br> $.ajax({ <br> url:'http://localhost:8080/test/file/'+"upload",<br> type: 'POST',<br><br> data: formData,<br><br> async: false,<br><br> cache: false,<br><br> contentType: false,<br> processData: false,<br><br> success: function (returndata) {<br><br> alert(returndata.data);<br> var fileUrl=returndata.data;<br> $("#fileUrl").attr("value",fileUrl);<br> var fileUrl2=fileUrl.replace("H:\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps","http://localhost:8080");<br> var temp = "<img src='"+fileUrl2+"'>";<br> $("#text").append(temp); <br> },<br><br> error: function (returndata) {<br><br> alert(returndata);<br><br> }<br><br> });<br><br> }<br>
两种方式:1、使用from提交,注意from上要加上属性enctype="multipart/form-data"2、使用ajaxfileupload,可以参考http://blog.csdn.net/u013062329/article/details/78971874
ajax文件上传的话一般会使用ajaxUpload。如果不用的话,那么你需要定义一个dataParam来把文件扩充进去,参数传的是dataParam数组,
而不是data了,这个比较麻烦。建议你改成ajaxUpload的写法就行,楼上有正解的