以下是代码的实现过程:

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. 通过IOCTL_ATA_PASS_THROUGH访问ATA设备接口

    控制代码功能:像ATA硬盘发送ATA指令.IDE/ATA:接口,一个串行,一个并行,一般叫做IDE接口的硬盘和ATA接口的硬盘.ATA指令:可以操作ATA硬盘的指令. typedef struct _ ...

  2. Digispark kickstarter + JoyStick 模拟鼠标

    IDE:Arduino 1.0.4 一.线路连接 S-Y --> P5(A0) S-X --> P2(A1) S-K --> P0 VCC --> VCC GND --> ...

  3. @media 响应式布局

    能根据宽 高 屏幕等一些标签的变化来应用不同的样式叫响应式,如: <!DOCTYPE html> <html lang="en"> <head> ...

  4. overflow标签

    有时父标签设置了固定的宽高,但子标签把父标签给撑开了,就要在父标签里加一个overflow标签,等于hidden超出的地方隐藏,等于auto超出的地方隐藏,并且多个滚动条 <div style= ...

  5. 关于sdk>=23的android版本权限的问题

    在SDK23也就是Android6.0.1里编写调用系统通讯录读写权限的程序,在AndroidManifest.xml中,已经配置了 <uses-permission android:name= ...

  6. linux mongodb 及php-mongo扩展安装

    安装背景   php7.2.5   ubuntu18.04.1 MongoDb 安装 sudo apt-get install mongodb MongoDb的php扩展 sudo apt-get i ...

  7. <亲测>window+iis+letsencrypt+ssl 手动续期(通配符域名)

    之前提到过 window环境下 生成ssl通配符域名证方法为:https://www.cnblogs.com/duanweishi/p/9491209.html    下文为在window环境下手动续 ...

  8. js页面滚动时层智能浮动定位实现

    直接上代码 $.fn.smartFloat = function (className) { var position = function (element) { var top = element ...

  9. C/C++基础---算法概览

    符号概念 beg和end表示元素范围的迭代器 beg2表示第二个序列开始位置迭代器,end2表示第二个序列末尾迭代器(如果有).如没有则假定系列2至少与beg end表示的范围一样大.beg和beg2 ...

  10. python列表中的值转换为字符串,及列表里的所有值拼接成一个字符串 的方法

    后记: ls3='%'.join(ls2) 会把%加入拼接成的字符里面,同理,加入其它字符也一样,''空就是什么都不加,如上图 最后输出 1%我%22