照片上传

1.获取所有的提交到服务器的文件集合

HttpFileCollection fileColl= Request.Files;

2.取得一个文件(这里是一张照片)

    HttpPostedFile pic = fileColl[0];

3.判断文件是否为空

  •     1.获取服务器存放图片的物理路径(Server.MapPath)

       string imgPhyPath = Server.MapPath("/upload/img/");

  •     2.将图片保存到物理路径 (pic.fileName)

    取出图片名称:  

      string filename = pic.FileName;

      1.获取文件的扩展名 (path.GetExtension)

           string extName = System.IO.Path.GetExtension(fileName);

        2.随机生成1个唯一的文件名Guid.NewGuid())

          string newFile = Guid.NewGuid() + extName;

      3.将文件保存到目标路径下:(upload\img\)

           pic.SaveAs(imgPhyPath + newfile);

  •     3.产生缩略图

      方法一(微软提供的,有bug)

          1.将浏览器上传的图片加载到图片对象中

             Image oldImg=Image.FromStream(pic.InputStream)

          2.获取原始图片的100*100的缩略图,GetThumbnailImage()方法不能产生所有图片的缩略图(bug)

             Image thumImg = oldImg.GetThumbnailImage(100, 100, null, IntPtr.Zero)

          3.将缩略图保存到(upload\thum\)

             string thumphyPath = Server.MapPath("/upload/thum/");

         4.获取缩略图的完整路径

                    string thumFullPath = thumphyPath + newfile;

                    thumImg.Save(thumFullPath);

    方法二 (自己动手,丰衣足食)

         1.将浏览器上传的图片加载到图片对象中

            Image oldImg=Image.FromStream(pic.InputStream)

         2.创建位图用于缩略图

          Image thumImg = new Bitmap(100, 100)

         3.利用画家对象绘制缩略图

            Graphics g = Graphics.FromImage(thumImg)

         4.绘制缩略图

         g.DrawImage(oldImg //要画的图片

                   , new Rectangle(0, 0, 100, 100)  //表示要画到缩略图的哪个位置(画满整个缩略图)

                  , new Rectangle(0, 0, oldImg.Width, oldImg.Height) //将原图整个画到缩略图

                  , GraphicsUnit.Pixel); //指定单位是像素

       5.将缩略图保存到服务器的磁盘(upload\thum\)

           string thumphyPath = Server.MapPath("/upload/thum/");

      6.获取缩略图的完整路径     string thumFullPath = thumphyPath + newfile;

        7.保存图片     thumImg.Save(thumFullPath);

完整代码:

方法一:利用微软提供的方法GetThumbnailImage(100, 100, null, IntPtr.Zero)(不推荐使用

using (Image oldImg = Image.FromStream(file.InputStream))
{
    //获取原始图片的100 * 100的缩略图,GetThumbnailImage()方法不能够产生所有图片的缩略图
    using (Image thumImg = oldImg.GetThumbnailImage(100, 100, null, IntPtr.Zero))
    {
        //将缩略图保存到 upload\thum\
        string thumphyPath = Server.MapPath("/upload/thum/");
        string thumFullPath = thumphyPath + newfile; //获取缩略图的完整路径
        thumImg.Save(thumFullPath);
    }
} 

方法二:自己动手实现

if (Request.HttpMethod.ToLower() == "post")
{
    HttpFileCollection fileColl= Request.Files;
    HttpPostedFile pic = fileColl[0];
    if (pic != null)
    {
        #region 1.0 修改图片名称
        string imgPhyPath = Server.MapPath("/upload/img/");
        string fileName = pic.FileName;
        //获取文件的扩展名
        string extName = System.IO.Path.GetExtension(fileName);
        //生成新的文件名
        string newFile = Guid.NewGuid() + extName;
        //将文件保存到目标路径下
        pic.SaveAs(imgPhyPath+newFile);
        #endregion

        #region 2.0 生成缩略图
        //创建image对象保存原图
        using (Image oldImg = Image.FromStream(pic.InputStream))
        {
            using (Image thumImg = new Bitmap(100, 100))
            {
                using (Graphics g = Graphics.FromImage(thumImg))
                {
                    g.DrawImage(
                        oldImg
                        ,
                        new Rectangle(0,0,100,100)
                        ,
                        new Rectangle(0,0,oldImg.Width,oldImg.Height)
                        ,
                        GraphicsUnit.Pixel
                        );
                    string thumPhyPath = Server.MapPath("/upload/thum/");
                    string thumFullPath = thumPhyPath + newFile;
                    thumImg.Save(thumFullPath);
                }
            }
        }
    }
}

照片上传

时间: 2024-10-10 16:28:03

照片上传的相关文章

springmvc照片上传功能

刚从ruby转做java,分个活做照片上传,开始感觉很崩溃,以为本人菜鸟一个,一见到流什么的就感觉很牛逼的东西我怎么会啊,自学加百度,做出来了,两种方法完成,关于js预览就不上传了,留作以后备用,也能帮助下和我一样的菜鸟 jsp页面 <form action="uploadPhoto.do" method="post" enctype="multipart/form-data">  上传照片:<input type=file n

java解决手机等移动设备中照片上传至服务器方向不正确的问题

如果将手机等移动设备中的照片上传至服务器,再显示已上传的图片,可能会有方向不正确的问题,这是因为照片中含有方向信息,它告知你照片是什么方向的,但我们如果没有处理方向,显示就会不正确.如果用正常方法读取已上传照片的宽和高: BufferedImage image = ImageIO.read(new File(fullPath)); int width = image.getWidth();  //图片的宽int height = height.getHeight();  //图片的高 这样获取出

android-----基于XUtils照片上传客户端以及服务器端实现

想必大家都在android中或多或少的使用过XUtils框架了吧,今天我们通过他来实现一个照片上传的Demo,希望能够对大家有帮助,下一篇再从源码角度来分析下XUtils的HttpUtils是怎么一个执行流程的: 先上执行效果图: 客户端实现: 首先来看布局文件: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.a

Android实现批量照片上传至server,拍照或者从相冊选择

近期因为项目需求,须要完毕批量照片上传,折腾了一段时间,最终完毕了,达到了例如以下效果 主界面主要有GridView组成和button组成,当按下一个格点时,会调用相机或者相冊,拍照或者选择相冊照片,选择完毕之后,将缩略图显示在GridView.在这里说明一下.假设GridView显示不出来.说明图片太大了.须要压缩,在我的上一篇博客,具体解说了图片压缩的原理与过程.这里不再赘述. 以下贴上代码, 主界面: package com.qian.pos; import java.util.HashM

Android上使用camera拍照,把获取的照片上传到远程服务器

使用Java上传文件 从Apache Software Foundation下载HttpClient 4.3.4. 在工程中添加下面的jar包: 参考sample,写一个简单的上传: public static void main(String[] args) throws Exception {         // TODO Auto-generated method stub         CloseableHttpClient httpclient = HttpClients.crea

android 选择图片拍照并剪切照片上传到服务器

界面调用方法: pickerPicture 和 pickerPictureOk 为父类方法, 父类方法中调用上传,界面中只需要处理这两个方法即可; 父类中处理打开照片,选择完成 和上传到服务器 调用 上传完成通知界面 选择图片并剪切,4.4的手机不同于其他 package com.idonoo.shareCar.ui.commom.activitys; import java.io.File; import android.app.Activity; import android.content

微信调用照相拍照等 js 接口的权限配置 和 照片上传和下载实现

直接上代码: 1. 前端调试代码: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>调用微信相机</title> <link rel="stylesheet" href="css/weui.min.css"/> </hea

Android开发:获得相册图片、拍照、照片上传服务器、从服务器读取照片

文章目录 一 整体功能描述 二 功能实现 1 获得图片 2上传到服务器并保存 3从服务器中获得图片并显示 4Common类中的辅助工具 一. 整体功能描述 通过从相册中选择图片或者拍照的方式获得图片,然后将这个图片上传至服务器,同时实现从服务器上读取该图片. 二. 功能实现 1.1 获得图片 (1)通常情况下,有以下两种方式: 从相册中选择图片 这种方式原理比较简单,就是从SDK中获得照片,转成字节再生产Bitmap对象用于显示即可. 拍照获得图片 拍照获取的图片原理就是先拍照存储,然后再读取,

基于ueditor开发的仿QQ空间照片上传功能

因为项目中需要用到文章编辑和图片上传的功能,因此便在网上搜索相关的材料,发现ueditor是个非常好用的插件,同时提供的图片上传的功能正好可以用来做我们项目中的上传照片,因此花了两天时间,把ueditor中关于图片和视频上传的功能分离出来,同时仿照QQ空间,添加修改了部分功能.有需要的朋友可以到 http://download.csdn.net/download/wang_huanming/8949383 下载,如果使用过程中有什么问题或者建议,可以随时联系我进行修改,共同进步. 版权声明:本文