2016-12-11 10 views
-1

${param.key}と同様に、JavaなしでELを使用してマルチパート/フォームデータ暗号化フォームを解釈する方法はありますか?マルチパートフォームデータの解析方法EL

可能であれば、multipart/form-data暗号化を使用せずにファイル入力をフォームに含めるための回避策がありますか?

答えて

1

multipart/form-dataは、ファイルのアップロードに使用されます。これは大きく、アップロードには時間がかかることがあります。他の着信要求をブロックしないために、処理は非同期である可能性があります。 Javaを使用し

@MultipartConfig

あなたが値を取得するためには、サーブレットの前に@MultipartConfig注釈を追加する必要がマルチパート/フォームデータを受信するサーブレットの場合request.getParameter("notFileFieldName");を呼び出してプレーンテキストパラメータのそれ以外の場合は、nullが返されます。

しかし、ファイルとその内容では、このようには機能しませんでした。
ファイル名、コンテンツタイプ、サイズ、および内容は、web.xmlに以下のsnippletを追加することができますJSPについて
request.getPart("theFileFieldName");

によって返さPartオブジェクトから取得することができます

<servlet> 
    <servlet-name>UploadFile</servlet-name> 
    <jsp-file>/path/form.jsp</jsp-file> 
    <multipart-config></multipart-config> 
</servlet> 
<servlet-mapping> 
    <servlet-name>UploadFile</servlet-name> 
    <url-pattern>/path/form.jsp</url-pattern> 
</servlet-mapping> 

<multipart-config></multipart-config>はJSPに対して上記の動作を有効にします。
したがって${param.notFileFieldName}はその値に評価されます。
でもない${param.theFileFieldName}

AsyncContextは、アップロード

を処理するために使用される可能性がしかし、あなたはJavaソリューションではないでしょう。 JavaScriptで

:FileReaderの()

あなたは、クライアント側のファイルを読むことができますどのように基本的な例。 (アップロードなし) 出典:https://developer.mozilla.org/de/docs/Web/API/FileReader/readAsDataURL

HTML

<input type="file" onchange="previewFile()"><br> 
<img src="" height="200" alt="Image preview..."> 

はJavaScript:アップロードが必要な場合は

function previewFile() { 
    var preview = document.querySelector('img'); 
    var file = document.querySelector('input[type=file]').files[0]; 
    var reader = new FileReader(); 

    reader.addEventListener("load", function() { 
    preview.src = reader.result; 
    }, false); 

    if (file) { 
    reader.readAsDataURL(file); 
    } 
} 

try it on jsfiddle

それはAJAXを行うことができます。

関連する問題