在.net中上传图片,有谁知道怎么先预览再上传

  string name,folder;//根据需要给上传的图片命名
    int minsize;//上传文件的最低大小,单位kb
    int maxsize;//上传文件的最大大小,大位kb

    protected void unload_Click(object sender, EventArgs e)
    {
        string fileName, fileExtension, FullName;
        if (UpImage.PostedFile != null)
        {
            if (UpImage.PostedFile.ContentLength != 0 && UpImage.PostedFile.ContentLength <= (1024 * maxsize) && UpImage.PostedFile.ContentLength >= (1024 * minsize))
            {
                fileName = System.IO.Path.GetFileName(UpImage.PostedFile.FileName);
                fileExtension = System.IO.Path.GetExtension(fileName);
                if (IsExtension(fileExtension))
                {
                    try
                    {
                        FullName = name;
                        CreateDir(folder);
                        FullName = DateTime.Now.ToString("yyyyMM") + "/" + FullName;
                        UpImage.PostedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath("~/unload/" + folder + "/") + FullName);
                    }
                    catch (Exception ex)
                    {
                        Response.Write("<script language=javascript>alert('" + ex.Message + "');</script>");
                        }
                }
                else
                {
                    Response.Write("<script language=javascript>alert('上传的文件格式不对,请上传指定的文件格式!');</script>");
                }
            }
            else
            {
                Response.Write("<script language=javascript>alert('没有上传文件,或者文件太大!请重新上传!');</script>");
            }
        }
      
    }
   
    private void CreateDir(String folder)
    {

        string dirByMonth = "", dirByDay = "";

        dirByMonth = DateTime.Now.ToString("yyyyMM");

        dirByDay = DateTime.Now.ToString("dd");

        string dir = System.Web.HttpContext.Current.Request.MapPath(@"UpFiles/" + folder + "/" + dirByMonth)+ "/" + dirByDay;

        try
        {

            if (!Directory.Exists(dir))
            {

                Directory.CreateDirectory(dir);

            }

        }

        catch (Exception e)
        {

            Response.Write("<script language=javascript>alert('" + e.Message + "');</script>");

        }

        finally { }

    }

    //这个函数是创建文件名

    private string CreateFileName()
    {

        string strR = "";

        strR += DateTime.Now.ToString("HH");

        strR += DateTime.Now.ToString("mm");

        strR += DateTime.Now.ToString("sss");

        Random roo = new Random();

        strR += roo.Next(11111, 99999);

        return strR;

    }


    private bool IsExtension(string Extension)
    {
        if (Extension == ".jpg")
            return true;
        else
            return false;
    }


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 jQuery插件jCrop来对图片进行和裁剪,然后使用 ASP.NET MVC的文件上功能将裁剪后的图片到服务器。 以下是大致的实现步骤: 1. 在视图引入 jCrop 插件和 jQuery 库: ``` <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-jcrop/0.9.15/css/jquery.Jcrop.min.css" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-jcrop/0.9.15/js/jquery.Jcrop.min.js"></script> ``` 2. 在视图显示待裁剪的图片: ``` <img src="path/to/image" id="crop-image" /> ``` 3. 使用 jCrop 插件初始化图片裁剪: ``` <script> $(function () { $('#crop-image').Jcrop({ aspectRatio: 1, onSelect: updateCoords }); }); function updateCoords(c) { $('#x').val(c.x); $('#y').val(c.y); $('#w').val(c.w); $('#h').val(c.h); }; </script> ``` 4. 添加表单元素用于提交裁剪的坐标: ``` <form method="post" action="Upload" enctype="multipart/form-data"> <input type="hidden" name="x" id="x" /> <input type="hidden" name="y" id="y" /> <input type="hidden" name="w" id="w" /> <input type="hidden" name="h" id="h" /> <input type="file" name="file" /> <input type="submit" value="Upload" /> </form> ``` 5. 在控制器实现文件上图片裁剪: ``` [HttpPost] public ActionResult Upload(HttpPostedFileBase file, int x, int y, int w, int h) { if (file != null && file.ContentLength > 0) { var fileName = Path.GetFileName(file.FileName); var filePath = Path.Combine(Server.MapPath("~/Uploads"), fileName); var img = Image.FromStream(file.InputStream); // 裁剪图片 var croppedImg = new Bitmap(w, h); var g = Graphics.FromImage(croppedImg); g.DrawImage(img, new Rectangle(0, 0, croppedImg.Width, croppedImg.Height), new Rectangle(x, y, w, h), GraphicsUnit.Pixel); croppedImg.Save(filePath); return RedirectToAction("Index"); } return View(); } ``` 这样就可以在 ASP.NET MVC 实现图片、裁剪和上了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值