欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java使用ajax完成上傳文件

 更新時(shí)間:2022年06月23日 14:09:06   作者:MR_非凡  
這篇文章主要為大家詳細(xì)介紹了java使用ajax完成上傳文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了java使用ajax完成上傳文件的具體代碼,供大家參考,具體內(nèi)容如下

使用ajax上傳文件最重要的就是實(shí)例化FormData來(lái)進(jìn)行上傳文件:

1、html代碼:

<div class="kuang">
?? ?<p>文件上傳</p>
?? ?<div class="san3">
?? ??? ?<input type="file" name="fujianID" id="fujianID" onchange="UpdateFile()"/>
?? ??? ?<input type = "hidden" name="fujianid" id="file2" />
?? ?</div>
</div>

2、ajax請(qǐng)求代碼:

<script type="text/javascript">

//上傳文件
function UpdateFile(){
?? ?var file_fujian = $("input[name='fujianID']").val();//用戶文件內(nèi)容(文件)
?? ?// 判斷文件是否為空?
?? ?if ( file_fujian== "") {
?? ??? ?layer.msg("青選擇上傳的附件",{icon:1,time:1000});
?? ??? ?return false;
?? ?}
?? ?//判斷文件類型,根據(jù)自己需要來(lái)做判斷
?? ?/*var fujianID = ?file_fujian.substring( file_fujian.lastIndexOf(".") + 1).toLowerCase();
?? ?if(fujianID != "xls" && fujianID !="xlsx"&&fujianID !="docx"&&fujianID !="doc"&&fujianID !="txt"){
? ? ? ?? ?layer.msg("請(qǐng)選擇Execl文或者word文件或者txt文件格式!",{icon:1,time:2000});
?? ??? ?return false;
?? ?}*/
?? ?//判斷文件大小
?? ?var size1 = $("input[name='fujianID']")[0].files[0].size;
?? ?if (size1>104857600) {
?? ??? ?layer.msg("上傳的附件不能大于100M",{icon:1,time:2000});
?? ??? ?return false;?? ??? ??? ??? ?
?? ?}
?? ?
?? ?boo1 = true;
?? ?var type = "file";
?? ?var formData = new FormData();//這里需要實(shí)例化一個(gè)FormData來(lái)進(jìn)行文件上傳
?? ?formData.append(type,$("#fujianID")[0].files[0]);
?? ?$.ajax({
? ? ? ? type:'POST',
? ? ? ? url:'<%=request.getContextPath()%>/login/fujian_file',
?? ??? ?data:formData,
?? ??? ?async:false,
?? ??? ?processData:false,
?? ??? ?contentType:false,
?? ??? ?success:function(data){
?? ??? ??? ?if (data=="error") {
?? ??? ??? ??? ?layer.msg("附件添加失敗",{icon:1,time:2000});
?? ??? ??? ?}else{
?? ??? ??? ??? ?$("#file2").val(data.list);
?? ??? ??? ??? ?layer.msg("附件已添加",{icon:1,time:2000});
?? ??? ??? ?}
?? ??? ?}
?? ?});
}

3、Java后臺(tái)數(shù)據(jù)處理代碼:

?/**
?? ? * 上傳文件
?? ? * @param file
?? ? * @param model
?? ? * @param request
?? ? * @return
?? ? */
?? ?@RequestMapping(value="/fujian_file")
? ? @ResponseBody
? ? public Map<String, Object> uploadToUser(@RequestParam("file") MultipartFile file, Model model,HttpServletRequest request) {
?? ??? ?
?? ??? ?String fileName = file.getOriginalFilename();
?? ??? ?if (fileName.indexOf("\\") != -1) {
?? ??? ? ? ?fileName = fileName.substring(fileName.lastIndexOf("\\"));
?? ??? ?}
?? ??? ?
?? ??? ?//String filePath = request.getContextPath()+ File.separator+"WebRoot"+ File.separator+"updatefile"+ File.separator;
?? ??? ?// 獲取項(xiàng)目名稱,文件上傳位置
?? ??? ?String filePath = ?request.getSession().getServletContext().getRealPath("/static/updatefile/files");
?? ??? ?File f = new File(filePath);
?? ??? ?if (!f.exists()) {
?? ??? ? ? ?f.mkdirs();// 不存在路徑則進(jìn)行創(chuàng)建
?? ??? ?}
?? ??? ?FileOutputStream out = null;
?? ??? ?try {
?? ??? ? ? ?// 重新自定義文件的名稱
?? ??? ? ? ?Date date = new Date();
?? ??? ? ? ?SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
?? ??? ? ? ?String d = sdf.format(date);// 時(shí)間
?? ??? ? ? ?//拼接文件路徑和文件名
?? ??? ? ? ?filePath = filePath +File.separator+ d + fileName;
?? ??? ? ? ?out = new FileOutputStream(filePath);
?? ??? ? ? ?out.write(file.getBytes());
?? ??? ? ? ?out.flush();//清空緩沖區(qū)的數(shù)據(jù)流
?? ??? ? ? ?out.close();//關(guān)閉流
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ??? ?//System.out.println(e); //打印拋出的異常
?? ??? ??? ?}
?? ??? ?Map<String,Object> map = new HashMap<String,Object>();
?? ??? ?map.put("list",filePath );
?? ??? ?return map; // 返回文件地址
?? ?}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 輕松掌握java中介者模式

    輕松掌握java中介者模式

    這篇文章主要幫助大家輕松掌握java中介者模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • SpringBoot實(shí)現(xiàn)excel生成并且通過(guò)郵件發(fā)送的步驟詳解

    SpringBoot實(shí)現(xiàn)excel生成并且通過(guò)郵件發(fā)送的步驟詳解

    實(shí)際開發(fā)中,特別是在B端產(chǎn)品的開發(fā)中,我們經(jīng)常會(huì)遇到導(dǎo)出excel的功能,更進(jìn)階一點(diǎn)的需要我們定期生成統(tǒng)計(jì)報(bào)表,然后通過(guò)郵箱發(fā)送給指定的人員,?今天要帶大家來(lái)實(shí)現(xiàn)的就是excel生成并通過(guò)郵件發(fā)送,需要的朋友可以參考下
    2023-10-10
  • MyBatis Generator配置入門

    MyBatis Generator配置入門

    本文主要介紹了MyBatis Generator配置入門,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 使用SpringMVC的@Validated注解驗(yàn)證的實(shí)現(xiàn)

    使用SpringMVC的@Validated注解驗(yàn)證的實(shí)現(xiàn)

    這篇文章主要介紹了使用SpringMVC的@Validated注解驗(yàn)證的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Spring?Boot?打包如何將依賴全部打進(jìn)去

    Spring?Boot?打包如何將依賴全部打進(jìn)去

    這篇文章主要介紹了Spring?Boot?打包如何將依賴全部打進(jìn)去,在pom.xml中引入插件,需要在項(xiàng)目的pom.xml文件中,添加?Maven?插件??spring-boot-maven-plugin,本文結(jié)合實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • JVM內(nèi)存增強(qiáng)之逃逸分析

    JVM內(nèi)存增強(qiáng)之逃逸分析

    逃逸分析一種數(shù)據(jù)分析算法,基于此算法可以有效減少Java對(duì)象在堆內(nèi)存中的分配。本文將詳細(xì)講講逃逸分析的原理與實(shí)現(xiàn),需要的可以參考一下
    2022-09-09
  • Spring?Boot中application配置文件的生效順序及應(yīng)用范圍

    Spring?Boot中application配置文件的生效順序及應(yīng)用范圍

    Spring?Boot的一個(gè)重要特性就是它的自動(dòng)配置,這一特性在很大程度上依賴于名稱為application的配置文件,本文將詳細(xì)介紹在Spring?Boot中,這些配置文件的加載順序以及每份文件的應(yīng)用范圍,需要的朋友可以參考下
    2024-03-03
  • JAVA最容易忽視的數(shù)據(jù)類型之枚舉詳解

    JAVA最容易忽視的數(shù)據(jù)類型之枚舉詳解

    這篇文章主要給大家介紹了關(guān)于JAVA最容易忽視的數(shù)據(jù)類型之枚舉的相關(guān)資料,Java中的枚舉類型是一種特殊的類型,它允許程序員定義一個(gè)固定的值集合,并為每個(gè)值分配一個(gè)名稱,枚舉類型提供了一種簡(jiǎn)單、安全和可讀性強(qiáng)的方式來(lái)表示一組相關(guān)的常量,需要的朋友可以參考下
    2023-10-10
  • java中線程池的關(guān)閉問(wèn)題

    java中線程池的關(guān)閉問(wèn)題

    這篇文章主要介紹了java中線程池的關(guān)閉問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Java ExecutorService四種線程池使用詳解

    Java ExecutorService四種線程池使用詳解

    這篇文章主要介紹了Java ExecutorService四種線程池使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02

最新評(píng)論