當前位置:首頁 » 文件管理 » springmvcajax上傳文件

springmvcajax上傳文件

發布時間: 2022-03-04 04:13:26

1. Spring中ajax與後端傳輸數據的幾種方式

後台解析ajax傳遞的數據,這主要看前端傳遞數據的格式,主要有以下幾種常見的。
1、前端ajax傳遞表單數據,類似{name:'zhangsan',age:'17'}
後台只需利用request.getParameter("name")形式即可獲取對應的value值。
2、前端傳遞json數據格式。後台可以直接獲取json字元串,然後利用相關的API轉成對應的java對象。或者直接利用springMvc的註解@RequestBody註解。
@RequestMapping(value = "/save")
public void save(@RequestBody User user){

}
這樣傳遞的json數據會自動封裝成user對象。
如果當前傳遞的是一個json數組,則後端可以定義一個VO對象,vo對象中存放一個userList。
public class UserVO{
private List<User> dataList;

}
@RequestMapping(value = "/save")
public void save(@RequestBody UserVO userVO){

2. springmvc和ajax傳值問題

ajax data 改成這樣
data : {
username: username
},

後台方法
public void ajaxDatas (@RequestParam(value="username", required=true) String username){
sysout(username);

}

其他不變
試試

3. 求解Spring mvc 文件上傳採用jquery插件 AjaxFileUpload.js 出現的一些問題

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>checkbox</title>
<script src="js/jquery-1.3.2.js" type="text/javascript"></script>
<script src="js/1.js" type="text/javascript"></script>
</head>

<body>
<table id="table1">
<tr>
<td><input type="checkbox" value="1"/>1</td>
<td id="k_1"><input type="text" name="student" id="s_1" readonly="true"/></td>
</tr>
<tr>
<td><input type="checkbox" value="2"/>2</td>
<td id="k_2"><input type="text" name="student" id="s_2" readonly="true"/></td>
</tr>
<tr>
<td><input type="checkbox" value="3"/>3</td>
<td id="k_3"><input type="text" name="student" id="s_3" readonly="true"/></td>
</tr>
<tr>
<td><input type="checkbox" value="4"/>4</td>
<td id="k_4"><input type="text" name="student" id="s_4" readonly="true"/></td>
</tr>
</table>
</body>
</html>

-------------------------------------------------------------
$(document).ready(function() {
$("td[id^='k_']").hide();
var check = $(":checkbox"); //得到所有被選中的checkbox
var actor_config; //定義變數
check.each(function(i){
actor_config = $(this);
actor_config.click(
function(){
if($(this).attr("checked")==true){
$("#k_"+$(this).val()).show();
}else{
$("#k_"+$(this).val()).hide();
}
}
);
});

});

4. springmvc ajaxupload上傳文件 能不能帶參數

可以。
<script type="text/javascript" src="<%=basePath%>/view/common/easyui/ajaxfileupload.js"></script>
<script type="text/javascript">
//全局參數
var attachment_page_url = "admin/attachment/manager/page";
var basepath = '<%=basePath%>';
//單個上傳
var uploadUrl = basepath+"portal/attachment/uploadFile";
</script>

5. dojo ajax 怎樣上傳文件到spring mvc 控制層

虛擬一個form表單,然後提交這個表單即可

6. java web Spring mvc ajax,後台controller與ajax怎麼相互傳值

前端ajax請求:
var options = {
url : "",
data : {username:username,password:password},
type : "post",
success : function(resp) {
if(resp == true){
alert("success");

}

}
};

$.ajax(options);
後台spring可以直接創建一個對象User,屬性包含username、password就會自動封裝在user中。添加@ResponseBody註解,springMvc會自動把結果轉為json給前端。
@ResponseBody
@RequestMapping(value = "/save")
public String saveUser(User user){
。。。

return "true";

}

7. ajaxfileupload+springmvc上傳多文件的control怎麼寫

1.Spring mvc

a.xml配置:

[html] view plain print?
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver" >
<!-- set the max upload size1MB 1048576 -->
<property name="maxUploadSize">
<value>52428800</value>
</property>
<property name="maxInMemorySize">
<value>2048</value>
</property>
</bean>
b. 伺服器端接收解析

[java] view plain print?
public void imgUpload(
MultipartHttpServletRequest multipartRequest,
HttpServletResponse response) throws Exception {
response.setContentType("text/html;charset=UTF-8");
Map<String, Object> result = new HashMap<String, Object>();
//獲取多個file
for (Iterator it = multipartRequest.getFileNames(); it.hasNext();) {
String key = (String) it.next();
MultipartFile imgFile = multipartRequest.getFile(key);
if (imgFile.getOriginalFilename().length() > 0) {
String fileName = imgFile.getOriginalFilename();
//改成自己的對象哦!
Object obj = new Object();
//Constant.UPLOAD_GOODIMG_URL 是一個配置文件路徑
try {
String uploadFileUrl = multipartRequest.getSession().getServletContext().getRealPath(Constant.UPLOAD_GOODIMG_URL);
File _apkFile = saveFileFromInputStream(imgFile.getInputStream(), uploadFileUrl, fileName);
if (_apkFile.exists()) {
FileInputStream fis = new FileInputStream(_apkFile);
} else
throw new FileNotFoundException("apk write failed:" + fileName);
List list = new ArrayList();
//將obj文件對象添加到list
list.add(obj);
result.put("success", true);
} catch (Exception e) {
result.put("success", false);
e.printStackTrace();
}
}
}
String json = new Gson().toJson(result,
new TypeToken<Map<String, Object>>() {
}.getType());
response.getWriter().print(json);
}

//保存文件
private File saveFileFromInputStream(InputStream stream, String path,
String filename) throws IOException {
File file = new File(path + "/" + filename);
FileOutputStream fs = new FileOutputStream(file);
byte[] buffer = new byte[1024 * 1024];
int bytesum = 0;
int byteread = 0;
while ((byteread = stream.read(buffer)) != -1) {
bytesum += byteread;
fs.write(buffer, 0, byteread);
fs.flush();
}
fs.close();
stream.close();
return file;
}

2.關於前端代碼
a.修改ajaxfileupload.js

先到官網下載該插件.

將源文件的createUploadForm的代碼替換如下:

[javascript] view plain print?
createUploadForm: function(id, fileElementId, data)
{
//create form
var formId = 'jUploadForm' + id;
var fileId = 'jUploadFile' + id;
var form = jQuery('<form action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"></form>');
if (data) {
for ( var i in data) {
jQuery(
'<input type="hidden" name="' + i + '" value="'
+ data[i] + '" />').appendTo(form);
}
}
for (var i = 0; i < fileElementId.length; i ++) {
var oldElement = jQuery('#' + fileElementId[i]);
var newElement = jQuery(oldElement).clone();
jQuery(oldElement).attr('id', fileElementId[i]);
jQuery(oldElement).attr('name', fileElementId[i]);
jQuery(oldElement).before(newElement);
jQuery(oldElement).appendTo(form);
}
//set attributes
jQuery(form).css('position', 'absolute');
jQuery(form).css('top', '-1200px');
jQuery(form).css('left', '-1200px');
jQuery(form).appendTo('body');
return form;
}
第一步高定
b. 頁面代碼

html:

[html] view plain print?
<input type="button" value="添加附件" onclick="createInput('more');" />
<div id="more"></div>
js:這里可以專門寫封裝類,以及給file加onchange事件判斷文件格式。由於時間有限,未修改
[javascript] view plain print?
var count = 1;
/**
* 生成多附件上傳框
*/
function createInput(parentId){
count++;
var str = '<div name="div" ><font style="font-size:12px;">附件</font>'+
' '+ '<input type="file" contentEditable="false" id="uploads' + count + '' +
'" name="uploads'+ count +'" value="" style="width: 220px"/><input type="button" value="刪除" onclick="removeInput(event)" />'+'</div>';
document.getElementById(parentId).insertAdjacentHTML("beforeEnd",str);
}
/**
* 刪除多附件刪除框
*/
function removeInput(evt, parentId){
var el = evt.target == null ? evt.srcElement : evt.target;
var div = el.parentNode;
var cont = document.getElementById(parentId);
if(cont.removeChild(div) == null){
return false;
}
return true;
}
下面是2個修改多file用的js,用於顯示和刪除,可以於上面的合並精簡代碼:
[javascript] view plain print?
function addOldFile(data){
var str = '<div name="div' + data.name + '" ><a href="#" style="text-decoration:none;font-size:12px;color:red;" onclick="removeOldFile(event,' + data.id + ')">刪除</a>'+
' ' + data.name +
'</div>';
document.getElementById('oldImg').innerHTML += str;
}

function removeOldFile(evt, id){
//前端隱藏域,用來確定哪些file被刪除,這里需要前端有個隱藏域
$("#imgIds").val($("#imgIds").val()=="" ? id :($("#imgIds").val() + "," + id));
var el = evt.target == null ? evt.srcElement : evt.target;
var div = el.parentNode;
var cont = document.getElementById('oldImg');
if(cont.removeChild(div) == null){
return false;
}
return true;
}
ajax上傳文件:
[javascript] view plain print?
function ajaxFileUploadImg(id){
//獲取file的全部id
var uplist = $("input[name^=uploads]");
var arrId = [];
for (var i=0; i< uplist.length; i++){
if(uplist[i].value){
arrId[i] = uplist[i].id;
}
}
$.ajaxFileUpload({
url:'xxxxx',
secureuri:false,
fileElementId: arrId, //這里不在是以前的id了,要寫成數組的形式哦!
dataType: 'json',
data: {
//需要傳輸的數據
},
success: function (data){
},
error: function(data){
}
});
}

8. springmvc+ajax上傳圖片的問題。傳過去的是空值.怎麼接收圖片

因為SpringMVC只有GET請求才能通過方法上加參數獲取到值,POST是不能通過這種方式獲取的,可以通過request.getParameter(key) 或者 封裝成對象(屬性對應前端參數)會自動填充。

另外我記得Ajax上傳文件不能直接用$.ajax這種方式傳,我的方法如下:
var form = new FormData();
var xhr = new XMLHttpRequest();
xhr.open("post", "url", true);

xhr.onload = function () {
alert("上傳完成!");
};
xhr.send(form);

9. java使用spring+springmvc.+mybaties,我使用ajax向後台添加數據,為

在web.xml 加上這段代碼試試呢

<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

10. 在springmvc中,接收手機端上傳的文件

MultipartHttpServletRequest 用這個request 別用 HttpServletRequest試試 再者 如果要ajax提交的話 需要嵌套iframe 互聯網上面有這個ajaxfileuploadV2.1.js

熱點內容
電腦批量壓縮圖片軟體 發布:2024-10-29 06:14:39 瀏覽:719
php郵件內容 發布:2024-10-29 06:14:33 瀏覽:835
偽裝者緩存 發布:2024-10-29 06:12:19 瀏覽:786
原神怎麼調低手機配置 發布:2024-10-29 06:12:01 瀏覽:1000
安卓怎麼安裝starwalk 發布:2024-10-29 05:49:20 瀏覽:831
安卓怎麼關閉ipodspro主動降噪 發布:2024-10-29 05:49:17 瀏覽:769
霹靂天命之斬魔錄ftp 發布:2024-10-29 05:19:48 瀏覽:345
2b的2t伺服器是什麼 發布:2024-10-29 05:08:25 瀏覽:600
設有遞推演算法 發布:2024-10-29 04:54:21 瀏覽:164
高並發應用建議使用雲伺服器嗎 發布:2024-10-29 04:42:06 瀏覽:125