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 @@ ...@@ -162,7 +162,7 @@
</site> </site>
<site name="ImgSave" id="2"> <site name="ImgSave" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool"> <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> </application>
<bindings> <bindings>
<binding protocol="http" bindingInformation="*:6146:localhost" /> <binding protocol="http" bindingInformation="*:6146:localhost" />
......
using ImgSave.Models; using ImgSave.Models;
...@@ -24,20 +24,28 @@ namespace ImgSave.Controllers ...@@ -24,20 +24,28 @@ namespace ImgSave.Controllers
if (null != data.i && null != data.f) 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(); string Config = ConfigurationManager.AppSettings["DefaultDirectory"].ToString();
//如果不存在就创建文件夹 //这个可以用工具类简化通用问题
int lastindex = data.f.LastIndexOf('\\'); string filePath = Path.Combine(Config, data.f);
string Dir = Config + "\\" + data.f.Substring(0, lastindex); FileInfo file = new FileInfo(filePath);
if (!Directory.Exists(Dir))
if (!Directory.Exists(file.DirectoryName))
{ {
Directory.CreateDirectory(Dir); Directory.CreateDirectory(file.DirectoryName);
} }
//根据路径判断文件是否存在 if (File.Exists(file.FullName) && !data.c)
string path = Config + "\\" + data.f;
if (File.Exists(path) && !data.c)
{ {
//存在,且不覆盖 //存在,且不覆盖
...@@ -49,7 +57,7 @@ namespace ImgSave.Controllers ...@@ -49,7 +57,7 @@ namespace ImgSave.Controllers
} }
else else
{ {
File.WriteAllBytes(path, base64); //保存图片到服务器 File.WriteAllBytes(file.FullName, base64); //保存图片到服务器
rmodel.s = true; rmodel.s = true;
rmodel.c = 200; 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