热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

upload上传单张图片

这篇文章主要介绍了upload上传单张图片的代码,需要的朋友可以参考下。

通过Upload上传单张图片,具体实现方式请看代码。 

protected void btnpic_upload_Click(object sender, EventArgs e)
  { 
   #region 上传文件
   Boolean fileOk = false;
   if (pic_upload.HasFile)//验证是否包含文件
   {
    //取得文件的扩展名,并转换成小写
    string fileExtension = Path.GetExtension(pic_upload.FileName).ToLower();
    //验证上传文件是否图片格式
    fileOk = IsImage(fileExtension);

    if (fileOk)
    {
     //对上传文件的大小进行检测,限定文件最大不超过8M
     if (pic_upload.PostedFile.ContentLength <8192000)
     {

      string filepath = "~/Admin/I_Institution/Images/";
      if (Directory.Exists(Server.MapPath(filepath)) == false)//如果不存在就创建file文件夹
      {
       Directory.CreateDirectory(Server.MapPath(filepath));
      }
      string virpath = filepath + CreatePasswordHash(pic_upload.FileName, 4) + fileExtension;//这是存到服务器上的虚拟路径
      string mappath = Server.MapPath(virpath);//转换成服务器上的物理路径
      pic.Visible = true;

      pic_upload.PostedFile.SaveAs(mappath);//保存图片
      //显示图片
      pic.ImageUrl = virpath;
      lbl_pic.Visible = true;
      //清空提示
      lbl_pic.Text = "上传成功";
     }
     else
     {
      pic.Visible = false;
      lbl_pic.Visible = true;
      pic.ImageUrl = "";
      lbl_pic.Text = "文件大小超出8M!请重新选择!";
     }
    }
    else
    {
     lbl_pic.Visible = false;
     pic.ImageUrl = "";
     lbl_pic.Text = "要上传的文件类型不对!请重新选择!";
    }
   }
   else
   {
    lbl_pic.Visible = false;
    pic.ImageUrl = "";
    lbl_pic.Text = "请选择要上传的图片!";
   }
   #endregion
  }

  /// 
  /// 验证是否指定的图片格式
  /// 
  /// 
  /// 
  public bool IsImage(string str)
  {
   bool isimage = false;
   string thestr = str.ToLower();
   //限定只能上传jpg和gif图片
   string[] allowExtension = { ".jpg", ".gif", ".bmp", ".png" };
   //对上传的文件的类型进行一个个匹对
   for (int i = 0; i 
  /// 创建一个指定长度的随机salt值
  /// 
  public string CreateSalt(int saltLenght)
  {
   //生成一个加密的随机数
   RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
   byte[] buff = new byte[saltLenght];
   rng.GetBytes(buff);
   //返回一个Base64随机数的字符串
   return Convert.ToBase64String(buff);
  }

  /// 
  /// 返回加密后的字符串
  /// 
  public string CreatePasswordHash(string pwd, int saltLenght)
  {
   string strSalt = CreateSalt(saltLenght);
   //把密码和Salt连起来
   string saltAndPwd = String.Concat(pwd, strSalt);
   //对密码进行哈希
   string hashenPwd = FormsAuthentication.HashPasswordForStoringInConfigFile(saltAndPwd, "sha1");
   //转为小写字符并截取前16个字符串
   hashenPwd = hashenPwd.ToLower().Substring(0, 16);
   //返回哈希后的值
   return hashenPwd;
  }

 拿到上传后的图片路径:    
      

代码如下:

string IcOnUrl= this.pic.ImageUrl.Trim();
       model.IcOnUrl= Path.GetFileName(IconUrl);         //获得已上传 图片控件的URL

   前台代码:

tr>
      
       机构图标路径 :
      
      
       

以上代码就是upload上传单张图片的全部代码,希望大家喜欢。


推荐阅读
  • 本文详细介绍如何在华为鲲鹏平台上构建和使用适配ARM架构的Redis Docker镜像,解决常见错误并提供优化建议。 ... [详细]
  • JavaScript 实现图片文件转Base64编码的方法
    本文详细介绍了如何使用JavaScript将用户通过文件输入控件选择的图片文件转换为Base64编码字符串,适用于Web前端开发中图片上传前的预处理。 ... [详细]
  • 华硕笔记本无法开启热点的解决办法
    当您的华硕笔记本电脑无法开启热点时,可能是因为多种原因导致的。本文将详细介绍几种有效的解决方法,帮助您快速恢复热点功能。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • 如题:2017年10月分析:还记得在没有智能手机的年代大概就是12年前吧,手机上都会有WAP浏览器。当时没接触网络原理,也不 ... [详细]
  • 本文详细介绍了使用 Selenium 2 进行测试的各种类型和注意事项,包括静态内容测试、链接测试、功能测试、动态元素测试、Ajax 测试以及断言与验证的区别。 ... [详细]
  • 探讨密码安全的重要性
    近期,多家知名网站如CSDN、人人网、多玩、开心网等的数据库相继被泄露,其中大量用户的账户密码因明文存储而暴露无遗。本文将探讨黑客获取密码的常见手段,网站如何安全存储用户信息,以及用户应如何保护自己的密码。 ... [详细]
  • 在Ubuntu 18.04上使用Nginx搭建RTMP流媒体服务器
    本文详细介绍了如何在Ubuntu 18.04上使用Nginx和nginx-rtmp-module模块搭建RTMP流媒体服务器,包括环境搭建、配置文件修改和推流拉流操作。适用于需要搭建流媒体服务器的技术人员。 ... [详细]
  • 在现代Web开发中,HTML5 Canvas常用于图像处理和绘图任务。本文将详细介绍如何将Canvas中的图像导出并上传至服务器,适用于拼图、图片编辑等场景。 ... [详细]
  • mysql 授权!!
    为什么80%的码农都做不了架构师?MySQL的权限系统围绕着两个概念:认证-确定用户是否允许连接数据库服务器授权-确定用户是否拥有足够的权限执 ... [详细]
  • 如何在Vista中通过组策略禁用添加或删除程序功能
    本文详细介绍了如何在Windows Vista操作系统中通过组策略禁用“添加或删除程序”功能,以防止未经授权的用户安装或卸载应用程序。文章内容清晰易懂,适合IT管理员和技术人员阅读。 ... [详细]
  • Linux网络配置文件详解及常见命令
    本文详细介绍了Linux系统中网络配置文件的作用及其配置方法,并提供了常用的网络管理命令,帮助用户更好地理解和管理网络配置。 ... [详细]
  • 在Java开发中,保护代码安全是一个重要的课题。由于Java字节码容易被反编译,因此使用代码混淆工具如ProGuard变得尤为重要。本文将详细介绍如何使用ProGuard进行代码混淆,以及其基本原理和常见问题。 ... [详细]
  • 本文介绍了蓝牙低功耗(BLE)中的通用属性配置文件(GATT),包括其角色、层次结构、属性、特性和服务等内容。 ... [详细]
  • 电商高并发解决方案详解
    本文以京东为例,详细探讨了电商中常见的高并发解决方案,包括多级缓存和Nginx限流技术,旨在帮助读者更好地理解和应用这些技术。 ... [详细]
author-avatar
阳光ai星星
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有