ホームページ > ウェブフロントエンド > htmlチュートリアル > h5 の js とサーブレットを使用したファイルアップロードの実装手順

h5 の js とサーブレットを使用したファイルアップロードの実装手順

php中世界最好的语言
リリース: 2017-12-04 10:45:04
オリジナル
2492 人が閲覧しました

今回はJSとサーブレットを使ってH5でファイルアップロードを実装する方法を説明します。ただし、ファイルの取得に新しい属性を使用するため、h5およびjsp3.0バージョンである必要があります。オブジェクトと背景 パーツオブジェクトを取得します。

以下に事例を紹介します

フロントエンド jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
<script type="text/javascript" src="jquery-3.2.1.min.js"></script>
</head>
<body>
    <p>
        name:<input type="text" id="name"/>
        文件:<input type="file" id="file"/>
        <br>
        <button id="btu" onclick="btu()">提交</button>
    </p>
</body>
 
<script>
    function btu(){
            var name=$("#name").val();
            var file=$("#file")[0].files[0];//新特性,获取文件对象
            var fordata=new FormData();//新特性,得到formData对象,把获取的值扔进去,相当于map
            fordata.append("name",name);
            fordata.append("file",file);
            console.log(file)
            $.ajax({
                url:"/war-2/UpdataFile",
                data:fordata,
                cache:false,
                processData:false, //必须写
                contentType:false, //必须写
                type:"post",
                success:function(data){
 
                }
            })
    }
</script>
</html>
ログイン後にコピー

バックエンド java

package up;
 
import java.io.File;
import java.io.IOException;
import java.util.Collection;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
 
/**
 * Servlet implementation class UpdataFile
 */
@MultipartConfig(location="E:/")
@WebServlet("/UpdataFile")
public class UpdataFile extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
    private File file;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
            System.out.println("1111111111");
    }
 
    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        //得到part对象,这个对象有write的方法,直接写到指定位置。但是千万别忘了写@MultipartConfig(location="E:/")注解,不指定位置默认是写到注解指定的位置。
        Part part = request.getPart("file");
        //普通的字段可以采用常规的getparamter的方法得到。
        System.out.println(new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8"));
        System.out.println(part.getName());
        System.out.println(part.getHeader("Content-Disposition"));
        System.out.println(part.getSize());
        String fileName = getFileNameFromPart(part);  
        part.write(fileName); 
    }
     //截取文件名  
    public String getFileNameFromPart(Part part) {  
        String header = part.getHeader("Content-Disposition");  
        String fileName = header.substring(header.indexOf("filename=\"")+10, header.lastIndexOf("\""));  
        return fileName;  
    } 
}
ログイン後にコピー


これらの事例を読んだ後、あなたはメソッドを習得したと思います。さらに興味深い情報については、注目してください。その他の関連記事は PHP 中国語 Web サイトにあります。

関連書籍:

HTML5 での DOM プログラミングの実装手順

H5 を使用して特殊効果のあるドロップダウン ボックスを作成する

HTML の FormData オブジェクトの詳細な紹介

以上がh5 の js とサーブレットを使用したファイルアップロードの実装手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート