4

画像ファイルのアップロードとサイズ変更に 3 か月前から、プロジェクトで jQuery ファイルのアップロードを使用しています。先週まではすべて正常に機能していました。プラグインは画像のサイズを変更しなくなりました (最新の Google Chrome および最新の FireFox)。

このページで同じ基本構成を使用していますhttps://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin

誰かが同じ問題を抱えていて、おそらく解決策がありますか?

ありがとう

4

3 に答える 3

16

クライアント側の画像のサイズ変更を機能させることができませんでした。これは、add メソッドをオーバーライドし、元のメソッドにある画像のサイズ変更を行うコードを含めていなかったためであることがわかりました。誰かの不満を解消するのに役立つことを期待して、私のソリューションを投稿します。

<form action="/path/to/uploadHandler" id="multiple-image-upload" enctype="multipart/form-data" method="post" accept-charset="utf-8">
    <input name="files" multiple="multiple" id="files" type="file">
</form>

<div id="file-upload-progress">
    <div id="upload-progress">
        <div class="bar" style="width: 0%;"></div>
    </div>
</div>

<script type="text/javascript">
$(function () {
    $('#multiple-image-upload').fileupload({
        dataType: 'json',
        // Enable image resizing, except for Android and Opera,
        // which actually support image resizing, but fail to
        // send Blob objects via XHR requests:
        disableImageResize: /Android(?!.*Chrome)|Opera/
            .test(window.navigator.userAgent),
        process:[
            {
                action: 'load',
                fileTypes: /^image\/(gif|jpeg|png)$/,
                maxFileSize: 20000000 // 20MB
            },
            {
                action: 'resize',
                maxWidth: 1920,
                maxHeight: 1200,
                minWidth: 800,
                minHeight: 600
            },
            {
                action: 'save'
            }
        ],
        add: function (e, data) {
            data.context = $('<p/>').text('Uploading '+data.files[0].name+'...').appendTo("#file-upload-progress");
            var $this = $(this);
            data.process(function () {
                return $this.fileupload('process', data);
            }).done(function() {
                data.submit();
            });
        },
        done: function (e, data) {
            data.context.html('<img src="'+data.result.files[0].thumbnailUrl+'" alt="'+data.result.files[0].name+'" />');
        },
        progressall: function (e, data) {
            var progress = parseInt(data.loaded / data.total * 100, 10);
            $('#upload-progress .bar').css(
                'width',
                progress + '%'
            ).text(
                progress + '%'
            );
        }
    });
})();
于 2014-02-11T15:46:49.170 に答える
1

最善の方法は、私が現在行っていることです:

$('#fileupload').fileupload({
      dataType: 'json',
      url: 'Upload.ashx,
      done: function (e, data) {
      $("#page_navigation").show();
            $.each(data.result, function (index, file) {
            $('#placeholderforimages').append("<img style='height:48px;width:65px;' src='yourimagepath'>");
            }
 });

アップデート:

配列を作成し、その中で宣言する必要がある wikiオプションは次のとおりです。

[
    {
        action: 'load',
        fileTypes: /^image\/(gif|jpeg|png)$/,
        maxFileSize: 20000000 // 20MB
    },
    {
        action: 'resize',
        maxWidth: 1920,
        maxHeight: 1200,
        minWidth: 800,
        minHeight: 600
    },
    {
        action: 'save'
    }
],
于 2012-04-29T19:17:24.110 に答える