以下是代码的实现过程:

Html页面表单布局:

   <form id="UpPicture"   enctype="multipart/form-data" action="服务器路径地址" method="post">
<table>
<tr>
<td>
<input type="file" name="Picture"/>
</td>
</tr> <tr>
<td>提交</td>
<td>
<input type="submit" value="提交" /></td>
</tr>
</table>
</form>

服务器端是实现:

       /// <summary>
/// 图片上传方法,客户端通过表单的形式上传
/// </summary>
/// <returns></returns>
[HttpPost]
public PhotographUploadReturn PhotographUpload()
{
var msg = "";
string _toServerPicturePath = "";//文件名
//接收表单传递过来的图片,需要限定上传的图片格式:".JPG", ".JPEG", ".GIF", ".PNG", ".BMP"
var file = HttpContext.Current.Request.Files["Picture"]; //检查文件是否被预览选中,判断方式:通过判断文件名是否为空或者空字符串
if (!string.IsNullOrWhiteSpace(file.FileName))
{
//限定上传图片的格式类型
string[] LimitPictureType = { ".JPG", ".JPEG", ".GIF", ".PNG", ".BMP" };
//当图片上被选中时,拿到文件的扩展名
string currentPictureExtension = Path.GetExtension(file.FileName).ToUpper();
//此处对图片上传的类型进行限定操作
if (LimitPictureType.Contains(currentPictureExtension))
{
//此处标记图片上传至服务器的唯一新名称
string _newFileName = Guid.NewGuid().ToString();
_toServerPicturePath = DateTime.Now.Year + "/" + DateTime.Now.Month + "/";
string _dbPicturePath = "Certifications/" + _toServerPicturePath + _newFileName + currentPictureExtension;
_toServerPicturePath = AppDomain.CurrentDomain.BaseDirectory + "Certifications/" + _toServerPicturePath;//最终生成的文件名:+_newFileName +currentPictureExtension //首先判断图片上传至服务的路径是否存在,不存在则创建并执行保存操作,存在则直接保存
if (Directory.Exists(_toServerPicturePath))
{
//最终上传的文件路径全名
_toServerPicturePath = _toServerPicturePath + _newFileName + currentPictureExtension;
}
else
{//不存在此路径,则创建后执行保存操作
Directory.CreateDirectory(_toServerPicturePath);
_toServerPicturePath = _toServerPicturePath + _newFileName + currentPictureExtension;
}
//执行保存图片,并插入数据库操作
file.SaveAs(HttpContext.Current.Server.MapPath("~/" + _dbPicturePath));
////执行数据库相关操作,没有异常则代码继续执行,否则跳出
msg = "图片上传操作成功!";
}
else
{
msg = "图片上传操作失败,请选择扩展名为:.JPG, .JPEG, .GIF, .PNG, .BMP 等类型图片。";
}
}
else
{
msg = "图片上传操作失败,图片没有被选中!";
} return new PhotographUploadReturn { ImageName = _toServerPicturePath, Message = msg };
}

ASP.NET WebApi 图片上传的更多相关文章

  1. ASP.NET MVC图片上传前预览

    回老家过春节,大半个月,在家的日子里,吃好睡好,人也长了3.5Kg.没有电脑,没有网络,无需写代码,工作上相关的完全放下......开心与父母妻儿过个年,那样的生活令Insus.NET现在还在留恋.. ...

  2. asp.net多图片上传实现程序代码

    下面是一个完整的asp.net同时支持多图片上传一个实现,有需要的朋友可参考一下,本文章限制同时可上传8张图片,当然大可自己可修改更多或更少. 前台代码如下: 复制代码代码如下: <% @ Pa ...

  3. asp.net多图片上传同时保存对每张图片的描述

    前台aspx //图片预览和描述 function previewImage(file) { var div = document.getElementById('preview'); div.inn ...

  4. MVC图片上传、浏览、删除 ASP.NET MVC之文件上传【一】(八) ASP.NET MVC 图片上传到服务器

    MVC图片上传.浏览.删除   1.存储配置信息 在web.config中,添加配置信息节点 <appSettings> <add key="UploadPath" ...

  5. asp.net+扫描仪+图片上传

    问题: IE浏览器下使用Activex插件调用客户端扫描仪扫描文件并山传,可以将纸质档案(如合同.文件.资料等)扫描并将扫描图像保存到服务器,可以用于合同管理.档案管理等. 通过插件方式调用扫描仪扫描 ...

  6. ASP.Net MVC3 图片上传详解(form.js,bootstrap)

    图片上传的插件很多,但很多时候还是不能切合我们的需求,我这里给大家分享个我用一个form,file实现上传四张图片的小demo.完全是用jquery前后交互,没有用插件. 最终效果图如下: 玩过花田人 ...

  7. asp.net ueditor 图片上传路径问题解决

    最近练习做一个新闻系统,其中不能少了添加新闻和修改新闻的功能 ,而且还要添加图片.添加文字样式, 所以不得不使用富文本编辑器,在kindeditor和ueditor中,选择了目前还在持续更新的百度产品 ...

  8. WebAPI图片上传

    public Task<HttpResponseMessage> PostFormData() { // Check if the request contains multipart/f ...

  9. MVC WebApi 图片上传和显示

    1 MVC中显示 内存流 中的图片.(不是图片文件) 创建一个Index用来显示 Action: public ActionResult Index() { return View(); } csht ...

随机推荐

  1. 【java】private关键字

     private关键字(1)修饰成员:可以修饰成员变量和成员方法(2)特点:被private修饰的后的成员只能在本类中被访问 (3)private的应用:定义类的时候,当把成员变量给private修饰 ...

  2. SDI core端口说明

    SDI core端口说明 本文基于赛灵思的官方文档以及自己的理解: 1.生成SDI core 2.得到SDI core的顶层文件,并对每个端口做出解释 smpte_sdi smpte_sdi ( .r ...

  3. 把指定的字符串翻译成 pig latin。

    freecodecamp上的算法题: 把指定的字符串翻译成 pig latin. Pig Latin 把一个英文单词的第一个辅音或辅音丛(consonant cluster)移到词尾,然后加上后缀 & ...

  4. 【巷子】---redux---【react】

    一.flux的缺陷 因为dispatcher和Store可以有多个互相管理起来特别麻烦 二.什么是redux 其实redux就是Flux的一种进阶实现.它是一个应用数据流框架,主要作用应用状态的管理 ...

  5. 【转】[Android] NDK独立编译——独立工具链

    转载地址:https://blog.csdn.net/suningning/article/details/74510125

  6. AM软件中reconfig的方法

    1.先进入admin 2.选数据库名: 比如这个HULLBLOCK/AFTBLOCKS   3. 选好数据库后在命令栏依次输入以下命令,输入每一行后回车一下: FROM DB HULLBLOCK/AF ...

  7. Linux Bash on Win10 (WSL)在cmder下使用vim时方向键失灵问题解决

    更改方法 由于cmder和bash.exe不兼容,如果你直接输入bash ~,那么进入子系统后将无法使用方向键和Home/PageUp/PageDown等键都无法使用,网上常见的cmder配置过程如下 ...

  8. vmware虚拟机三种网络模式的区别

    首先安装了VMware,在其中安装了Ubuntu系统,正常启动之后开始考虑怎么才能够让主机和虚拟机实现网络互连并且由主机向虚拟机发送文件,通过在网上查阅相关资料,记录学习笔记如下. 学习参考资料: l ...

  9. Android开发之adb,$Sqlite篇

    一. 操作系统: 1. linux操作系统: linux操作系统其实就是Linux内核,Linux内核[kernel]是整个操作系统的最底层,它负责整个硬件的驱动,以及提供各种系统所需的核心功能,包括 ...

  10. ubuntu16.04 彻底卸载MySQL

    以MySQL- 5.7.18为例: sudo apt-get autoremove --purge mysql-server-5.7 #sudo apt-get remove mysql-server ...