处理图片保存到临时文件夹并在试图显示

  1.  在试图通过<input type="file" name="file" accept=".doc,.docx" "uploadWord()" />选择到图片再通过post提交方式提交from表单方式将携带图片文件的from表单传递到控制器中,
    

在控制器中创建一个方法用于接收试图传过来的数据,并在这个方法里面去处理图片和保持图片,注意:这里图片保存并非是将图片保持到数据库里面去,而是把图片保存到项目里面的某个目录里,当然这就涉及到了你指定保存图片的目录的路径,也涉及到保持路径的的拼接,保持目录有两个一个是临时保持目录,一个是最终保存目录,临时目录用于存放还没有确定保存之前选择到需要保存的图片,最终保存目录存放的是确定保存后选择到的图片,在确定保存后,要从临时目录中把相关的图片移动到最终目录,当然这里的移动不会把临时目录的图片删除,相当于把图片复制了一份给到最终目录,那么我们就还得通过一个定时器在每天或者多天的规定时间去清空一下临时目录,释放存储空间。图片本身是存放到项目目录里的,但我们还得保存一下图片的存放在项目目录的具体路径到数据库,因为当年保存后再想在页面显示出图片就得知道图片的链接。为了保正每一张图片的每次都是独一无二的我们可以通过string fileExtension =
System.IO.Path.GetExtension(file.FileName);获取到文件类型,通过string
fileName = DateTime.Now.ToString(“yyyyMMddHHmmss”) + FileName创建新的图片名称,这操作在控制器中的方法中进行,通过传过来的数据获取到图片的文件类型fileExtension再通过在fileExtension前面拼接一个系统的当前时间DateTime.Now.ToString(“yyyyMMddHHmmss”)组合成新的图片名称,因为时间是不重复的所有这样就可以确保 保存下来的每一张图片的名称都是不同的,处理完图片名称后就涉及到图片保存路径的问题,通过string
filePath = Server.MapPath("~/Document/Title/Temp/") + fileName;创建路径;之后就判断路径存不存在如果不存在就创建目录,如果目录存在再判断一下文件类型是否是多种图片类型中的一种,这样确保保存的是图片而不是其他的文件,之后通过file.SaveAs(filePath); 将文件保存到指定路径,这里保存这是保存到临时文件夹,最终返回一个链接到试图,在试图就可以将返回的链接给到HTML里面的imgs标签里从而可以实现图片的显示,当然这个图片文件也是保存到了项目的临时目录里了。保存到最终文件夹过程暂时不谈。

以下是一个例子只有控制器方法:试图的不写(注意:一以下代码来自于李老师的授课内容)

public ActionResult UpEeditorFile(HttpPostedFileBase file)

    {

        ReturnJson msg = new ReturnJson();

        msg.State = false;

        try

        {

            //判断文件是否为空

            if (file != null)

            {

                #region 获取文件类型 设置文件名称 检查文件目录是否存在


                //获取文件类型

                string fileExtension =

System.IO.Path.GetExtension(file.FileName);

                //创建文件的名称

                string fileName = DateTime.Now.ToString("yyyy-MM-dd") + Guid.NewGuid() +

fileExtension;//表示全局唯一的标识符(GUID)

//检查目录是否存在,如果不存在就创建一个目录

                if (!Directory.Exists(Server.MapPath("~/Document/Title/Temp/")))

                {

                    //创建临时目录/Document/Notice

                    Directory.CreateDirectory(Server.MapPath("~/Document/Title/Temp/"));

                }

                if (! Directory.Exists(Server.MapPath("~/Document/Title/Images/")))

                {

                    //创建目录/Document/Notice/

                    Directory.CreateDirectory(Server.MapPath("~/Document/Title/Images/"));

                }

                #endregion

                //保存文件的路径

                string filePath =

Server.MapPath("~/Document/Title/Temp/") + fileName;

                #region 若扩展名不为空则判断文件是否是指定图片类型 ,然后返回img

                if (fileExtension != null)

                {

                    fileExtension =

fileExtension.ToLower();//转小写字母

                    if ("(.gif)|(.jpg)|(.bmp)|(.jpeg)|(.png)".Contains(fileExtension))

                    {

                        //保存文件

file.SaveAs(filePath); //将文件保存到指定路径

                        string str = "<img

“AutoResizeImage(200,200,this)” "

                         + "src=\"/Document/Title/Temp/" + fileName + "\"

/>";

                        msg.State = true;

                        msg.Text = str;

                    }

                    else

                    {

                        msg.Text = "只支持上传图片文件(gif,jpg,bmp,jpeg,png)";

                    }

                }

                #endregion

            }

            else

            {

                msg.Text = "上传的文件为空";



            }

        }

        catch (Exception)

        {

            msg.Text = "上传数据异常";

        }



        return Json(msg, JsonRequestBehavior.AllowGet);

   }

猜你喜欢

转载自blog.csdn.net/qq_44489422/article/details/89327308