1

モバイル デバイスのカメラとフォト アルバムにアクセスして、選択した画像を取得しようとしています。以下のコードでそれを行いました。私の問題は、画像データを生成し、それを別のページに転送する必要があることですが、生成された文字列のサイズが原因で、URL パラメーターを使用できません。エラーが表示されます:[404] Request-URI Too long。どうすれば他のページに情報を渡すことができますか?

コードは次のとおりです。http://jsfiddle.net/8u426/

JS:

<script>

    oFReader = new FileReader();

    oFReader.onload = function (oFREvent) {     
        document.getElementById("fotoImg").src = oFREvent.target.result;
        document.getElementById("fotoImg").style.visibility = "visible"; 
        var screenHeight = screen.availHeight;
        screenHeight = screenHeight - 220;
        document.getElementById("fotoImg").style.height = screenHeight;
        document.getElementById("stringImg").innerText = "Data Image: " + oFREvent.target.result;
    };

    $(function() {
        $("input:file").change(function (){
            var input = document.querySelector('input[type=file]');
            var oFile = input.files[0];
            oFReader.readAsDataURL(oFile);  
            });
    });

</script>

アップデート:

問題は、データ イメージ文字列を URL のパラメーターとして ("?" を使用して) 渡して新しいページを開こうとした場合です。文字列が長すぎるため、新しいページには前述の 404 エラーが表示されます。

4

2 に答える 2

1

フォームを次のように変更してみてください

<form id="form1" method="POST" action="[Page2 URL]">
    <input id="filePic" type="file" name="image" accept="image/*" capture />    
</form>

[Page2 URL] は、アップロードされた画像を受け取るページの URL です。

そして JavaScript へ

oFReader = new FileReader();

oFReader.onload = function (oFREvent) {     
    var screenHeight = screen.availHeight;
    screenHeight = screenHeight - 220;

    var img = $('#fotoImg');
    img.attr('src', oFREvent.target.result);

    img.css( { height : screenHeight, visibility: 'visible' });
    $("#stringImg").text( "Data Image: " + oFREvent.target.result);
    $('#form1').submit();
};

$(function() {
    $("input:file").change(function (){
        var oFile = this.files[0];
        oFReader.readAsDataURL(oFile);
    });
});
于 2013-09-14T13:33:12.193 に答える