Как сохранить изображения с двумя разными размерами, используя plupload - PullRequest
1 голос
/ 16 сентября 2011

Я использую плагин Plupload для загрузки нескольких изображений, поскольку у нас есть возможность изменить размер изображений на стороне клиента, и я хотел бы загрузить изображения с оригинальным размером и сохранить их в отдельной папке, а изображения с измененным размером - в другой папке.

Может кто-нибудь предложить мне, как действовать дальше? Вот мой код:

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
    Dim chunk As Integer = If(context.Request("chunk") IsNot Nothing, Integer.Parse(context.Request("chunk")), 0)
    Dim fileName As String = If(context.Request("name") IsNot Nothing, context.Request("name"), String.Empty)

    Dim fileUpload As HttpPostedFile = context.Request.Files(0)

    Dim uploadPath = context.Server.MapPath("~/uploads")
    Using fs = New FileStream(Path.Combine(uploadPath, fileName), If(chunk = 0, FileMode.Create, FileMode.Append))
        Dim buffer = New Byte(fileUpload.InputStream.Length - 1) {}
        fileUpload.InputStream.Read(buffer, 0, buffer.Length)

        fs.Write(buffer, 0, buffer.Length)
    End Using

    context.Response.ContentType = "text/plain"
    context.Response.Write("Success")
End Sub

Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
    Get
        Return False
    End Get
End Property

Это мой код скрипта:

<script type="text/javascript">
    $(function () {
        // Setup flash version
        $("#flash_uploader").pluploadQueue({
            // General settings
            runtimes: 'flash',
            url: 'upload.ashx',
            max_file_size: '10mb',
            chunk_size: '1mb',
            unique_names: true,
            filters: [
        { title: "Image files", extensions: "jpg" }
    ],

            // Resize images on clientside if we can
            resize: { width: 800, height: 600, quality: 90 },

            // Flash settings
            flash_swf_url: 'js/plupload.flash.swf',

            init: { StateChanged: function (up) {
                // Called when the state of the queue is changed
                if (up.state == plupload.STOPPED) {
                    $("#btnSubmit").removeAttr("disabled");
                }
            }
            }

        });
    var uploader = $('#flash_uploader').pluploadQueue();
    uploader.bind('FileUploaded', function (up, file, res) {
        $('#showfilelist').append("<div id=" + file.id + "><a href='uploads/" + file.target_name + "' target='_blank'><img src='uploads/" + file.target_name + "' border='0'/><br>" + file.name + "</a><br>(" + plupload.formatSize(file.size) + ") <span></span></div>");

});
});

</script>

1 Ответ

2 голосов
/ 16 сентября 2011
// Resizing an image
// Inputs [ new image size (Height,Width), Origial file path & name, new file path & name ]

 ResizeImage(int height,int width, string inputFile, string outputFile)
{
            var img = Image.FromFile(inputFile);
            Image imagThumb = null;
            imagThumb = img.GetThumbnailImage(width, height, null, new IntPtr());
            imagThumb.Save(outputFile);
 }

входные и выходные файлы могут быть доступны по пути, по которому вы сохраняете изображения

eg.var input = Server.MapPath("~/images/imagename");
...