Commit 493a6f4f by mahaisong

fix: 图片加入"data:image/" 用来判断。扩展一下。

使用path函数,节省自己代码切割的容错性。
parent ae987001
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
......@@ -162,7 +162,7 @@
</site>
<site name="ImgSave" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="c:\users\admin\documents\visual studio 2015\Projects\ImgSave\ImgSave" />
<virtualDirectory path="/" physicalPath="D:\smallproject\11.图片转储API\ImgSave\ImgSave" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:6146:localhost" />
......
using ImgSave.Models;
using ImgSave.Models;
......@@ -24,20 +24,28 @@ namespace ImgSave.Controllers
if (null != data.i && null != data.f)
{
byte[] base64 = Convert.FromBase64String(data.i);//获取图片base64
var imageBase64 = data.i;
//加1个判断,扩展
if (imageBase64.StartsWith("data:image/"))
{
imageBase64 = imageBase64.Split(',')[1];
}
byte[] base64 = Convert.FromBase64String(imageBase64);//获取图片base64
string Config = ConfigurationManager.AppSettings["DefaultDirectory"].ToString();
//如果不存在就创建文件夹
int lastindex = data.f.LastIndexOf('\\');
string Dir = Config + "\\" + data.f.Substring(0, lastindex);
if (!Directory.Exists(Dir))
//这个可以用工具类简化通用问题
string filePath = Path.Combine(Config, data.f);
FileInfo file = new FileInfo(filePath);
if (!Directory.Exists(file.DirectoryName))
{
Directory.CreateDirectory(Dir);
Directory.CreateDirectory(file.DirectoryName);
}
//根据路径判断文件是否存在
string path = Config + "\\" + data.f;
if (File.Exists(path) && !data.c)
if (File.Exists(file.FullName) && !data.c)
{
//存在,且不覆盖
......@@ -49,7 +57,7 @@ namespace ImgSave.Controllers
}
else
{
File.WriteAllBytes(path, base64); //保存图片到服务器
File.WriteAllBytes(file.FullName, base64); //保存图片到服务器
rmodel.s = true;
rmodel.c = 200;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment