Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File upload 如何在使用asp.net fileuploader保存到数据库之前减小多个图像的大小_File Upload_Byte_Image Resizing - Fatal编程技术网

File upload 如何在使用asp.net fileuploader保存到数据库之前减小多个图像的大小

File upload 如何在使用asp.net fileuploader保存到数据库之前减小多个图像的大小,file-upload,byte,image-resizing,File Upload,Byte,Image Resizing,我已经完成了多文件加载程序,并将图像保存在数据库中为(字节) 在检索这些图像时,抛出了异常内存,因此我希望通过实用的方法(c#,asp.net)减少上载的多个文件的大小 因此,在保存到数据库之前,我无法使用.net中的file up loader减小多个图像的大小 protected void DataUploading() { try { int count; if (uploader.HasFile)

我已经完成了多文件加载程序,并将图像保存在数据库中为(字节) 在检索这些图像时,抛出了异常内存,因此我希望通过实用的方法(c#,asp.net)减少上载的多个文件的大小

因此,在保存到数据库之前,我无法使用.net中的file up loader减小多个图像的大小

protected void DataUploading()
    {
        try
        {
            int count;
            if (uploader.HasFile)
            {
                string s = System.IO.Path.GetExtension(uploader.FileName);
                if ((s == ".JPG") || (s == ".JPEG") || (s == ".PNG") || (s == ".BMP") || (s == ".jpg") || (s == ".jpeg") || (s == ".png") || (s == ".bmp") || (s == ".jpe"))
                {
                    count = ReferrenceCount();
                    HttpFileCollection fileCollection = Request.Files;
                    if (count == 0)
                    {
                        count = 0;
                    }
                    for (int i = 0; i < fileCollection.Count; i++)
                    {
                        HttpPostedFile uploadfile = fileCollection[i];
                        int fileSize = uploadfile.ContentLength;
                        if (fileSize <= 31457280)//3145728-5242880
                        {
                            string fileName = Path.GetFileName(uploadfile.FileName);
                            if (uploadfile.ContentLength > 0)
                            {
                                string contentType = uploader.PostedFile.ContentType;
                                using (Stream fs = uploadfile.InputStream)
                                {
                                    using (BinaryReader br = new BinaryReader(fs))
                                    {
                                        byte[] bytes = br.ReadBytes((Int32)fs.Length);
                                        byte[] newbytes = reducesize(uploadfile);

                                        imagelist.Add(bytes);
                                        refcounts.Add(count);
                                        count += 1;
                                    }
                                }
                            }
                        }
                        else
                        {
                            //image compression code to be written here
                            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('FILE SIZE SHOULD BE LIMIT TO 5MB')", true);
                        }
                    }
                }
                else
                {
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('ONLY JPEG,BMP,PNG ARE ALLOWED')", true);
                }
                for (int ij = 0; ij < imagelist.Count; ij++)
                {
                    using (con = new SqlConnection(constr))
                    {
                        string query = string.Empty;
                        query = "INSERT INTO INVENTORY_IMAGES(CLAIM_NUMBER,PHOTOS,REF_NO,UPDATEDATE,MODIFIEDDATE,MODIFIEDBY,CHASSIS) values (@Name, @Data,@REF,@DATE,@datetime,@user,@chassis)";
                        using (cmd = new SqlCommand(query))
                        {
                            cmd.Connection = con;
                            cmd.Parameters.AddWithValue("@Name", txtclaimnumber.Text);
                            cmd.Parameters.AddWithValue("@Data", imagelist[ij]);
                            cmd.Parameters.AddWithValue("@REF", refcounts[ij].ToString());
                            cmd.Parameters.AddWithValue("@DATE", DateTime.Now.ToString("dd/MM/yyyy"));
                            cmd.Parameters.AddWithValue("@datetime", DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));
                            cmd.Parameters.AddWithValue("@user", Session["user"].ToString());
                            cmd.Parameters.AddWithValue("@chassis", txtchasisno.Text);
                            con.Open();
                            cmd.ExecuteNonQuery();//'"+DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss")+"','"+Session["user"].ToString()+"','"++"'
                        }
                    }
                }
                imagelist.Clear();
                refcounts.Clear();
            }
            else
            {
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('PLEASE SELECT A FILE')", true);
            }

        }
        catch (Exception ee)
        {
            WriteLog(ee.Message);
            throw ee;
        }
    }

    private byte[] reducesize(HttpPostedFile HttpPostedFiles)
    {

        //variable to store the image content
        //the size of the variable is initialized to the file content length
        byte[] imageBytes = new byte[HttpPostedFiles.ContentLength];

        //Gets the underlying System.Web.HttpPostedFile object for a file that is uploaded
        //by using the System.Web.UI.WebControls.FileUpload control.
        //HttpPostedFile uploadImage = fileUploadS.PostedFile;

        //read the image stream from the post and store it in imageBytes
        HttpPostedFiles.InputStream.Read(imageBytes, 0, (int)HttpPostedFiles.ContentLength);

        //resize image to a thumbnail
        MemoryStream thumbnailPhotoStream = ResizeImage(HttpPostedFiles);
        byte[] thumbnailImageBytes = thumbnailPhotoStream.ToArray();

        return thumbnailImageBytes;
        //end
    }

    private MemoryStream ResizeImage(HttpPostedFile HttpPostedFiless)
    {
        try
        {

            Bitmap originalBMP = new Bitmap(HttpPostedFiless.InputStream);

            // Create a bitmap with the uploaded file content
            //Bitmap originalBMP = new Bitmap(inputContent);

            // get the original dimensions
            int origWidth = originalBMP.Width;
            int origHeight = originalBMP.Height;

            //calculate the current aspect ratio
            int aspectRatio = origWidth / origHeight;

            //if the aspect ration is less than 0, default to 1
            if (aspectRatio <= 0)
                aspectRatio = 1;

            //new width of the thumbnail image           
            int newWidth = 100;

            //calculate the height based on the aspect ratio
            int newHeight = newWidth / aspectRatio;

            // Create a new bitmap to store the new image
            Bitmap newBMP = new Bitmap(originalBMP, newWidth, newHeight);

            // Create a graphic based on the new bitmap
            Graphics graphics = Graphics.FromImage(newBMP);

            // Set the properties for the new graphic file
            graphics.SmoothingMode = SmoothingMode.AntiAlias; graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;

            // Draw the new graphic based on the resized bitmap
            graphics.DrawImage(originalBMP, 0, 0, newWidth, newHeight);

            //save the bitmap into a memory stream
            System.IO.MemoryStream stream = new System.IO.MemoryStream();
            newBMP.Save(stream, GetImageFormat(System.IO.Path.GetExtension(HttpPostedFiless.FileName)));

            // dispose drawing objects
            originalBMP.Dispose();
            newBMP.Dispose();
            graphics.Dispose();

            return stream;
        }
        catch (Exception ee)
        {
            WriteLog(ee.Message);
            throw;
        }

    }
    private System.Drawing.Imaging.ImageFormat GetImageFormat(string extension)
    {
        switch (extension.ToLower())
        {
            case "jpg":
                return System.Drawing.Imaging.ImageFormat.Jpeg;
            case "bmp":
                return System.Drawing.Imaging.ImageFormat.Bmp;
            case "png":
                return System.Drawing.Imaging.ImageFormat.Png;
        }
        return System.Drawing.Imaging.ImageFormat.Jpeg;
    }
受保护的无效数据上载()
{
尝试
{
整数计数;
if(uploader.HasFile)
{
字符串s=System.IO.Path.GetExtension(uploader.FileName);
如果((s==“.JPG”)| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
{
count=referencecount();
HttpFileCollection fileCollection=Request.Files;
如果(计数=0)
{
计数=0;
}
for(int i=0;i