asp.net mvc 问题:上传图片保存时候路径偷偷改变的问题?

epui2008 2019-05-08 05:11:46
大家好,我做了个小博客练手,做了一个功能用:ueditor 从网上复制文章的时候,直接把文章中的图片保存到本主机上,也就是ueditor提供的远程抓图功能。

可以正常保存,但是路径总是偷偷给我修改了:

比如 我保存在 这个文件夹下面:

string PrePath = "UploadFiles/Imgs/";

this.ServerUrl = ("../../../../") + PrePath + DateTime.Now.ToString("yyyy/MM/dd/") + CommonHelper.CalcMD5(this.SourceUrl) + fileExtension;


会生成诸如这样的 路径:
“../../../../../UploadFiles/Imgs/2019/05/08/3973800AD7F5355CD01309FE4B1ED1F1.jpeg”


图片正常保存到按日期生成的文件夹中


在本地测试 OK

ueditor 返回:
{"state":"SUCCESS","list":[{"state":"SUCCESS","source":"http://pics0.baidu.com/feed/730e0cf3d7ca7bcb246cd4039647ad67f624a85d.jpeg?token=31220645babee3360e92cb446f43ad15&s=A524DE15D4DA166040193C8D0300E0B0","url":"../../../../UploadFiles/Imgs/2019/05/08/3973800AD7F5355CD01309FE4B1ED1F1.jpeg"},{"state":"SUCCESS","source":"http://pics3.baidu.com/feed/738b4710b912c8fc48e093bfd44d5441d6882107.jpeg?token=b14d28d151686edf099dc00a98c2fd9c&s=72C6B44432022B76003C183703005040","url":"../../../../UploadFiles/Imgs/2019/05/08/C9DFF03263E62E47CC0D400DEF03F032.jpeg"},{"state":"SUCCESS","source":"http://pics1.baidu.com/feed/50da81cb39dbb6fdd9c7b20c216a6d1c962b37ca.jpeg?token=7d720b6e12b173239f60f61a626bb540&s=3A1259CFEC73059495A1A0080300E0D1","url":"../../../../UploadFiles/Imgs/2019/05/08/C68472A19D7B49EBC7CEC5C415F1C673.jpeg"}]}


---------------------------------------------------------------------------------------------------------------------------------------
上传到阿里云虚拟主机之后,照样可以远程抓取,图片也保存成功

但是 路径变了:

ueditor 返回:

{"state":"SUCCESS","list":[{"state":"SUCCESS","source":"http://pics0.baidu.com/feed/730e0cf3d7ca7bcb246cd4039647ad67f624a85d.jpeg?token=31220645babee3360e92cb446f43ad15&s=A524DE15D4DA166040193C8D0300E0B0","url":"../../../../UploadFiles/Imgs/2019-05-08-3973800AD7F5355CD01309FE4B1ED1F1.jpeg"},{"state":"SUCCESS","source":"http://pics3.baidu.com/feed/738b4710b912c8fc48e093bfd44d5441d6882107.jpeg?token=b14d28d151686edf099dc00a98c2fd9c&s=72C6B44432022B76003C183703005040","url":"../../../../UploadFiles/Imgs/2019-05-08-C9DFF03263E62E47CC0D400DEF03F032.jpeg"},{"state":"SUCCESS","source":"http://pics1.baidu.com/feed/50da81cb39dbb6fdd9c7b20c216a6d1c962b37ca.jpeg?token=7d720b6e12b173239f60f61a626bb540&s=3A1259CFEC73059495A1A0080300E0D1","url":"../../../../UploadFiles/Imgs/2019-05-08-C68472A19D7B49EBC7CEC5C415F1C673.jpeg"}]}


图片 直接保存在了:UploadFiles/Imgs 这个目录下 如图



简直是百思不得其解;
我以为是路径太长了,就把../../../删除了,结果还是日期哪里没有文件夹;
难道是阿里云虚拟主机会自动修改保存路径吗?不太可能啊,这样的话 就相当于没有告知情况下直接修改了客户 的需求了

郁闷了,希望各位大哥给点提示,谢谢!谢谢!
...全文
206 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
epui2008 2019-05-09
  • 打赏
  • 举报
回复
搞定,就是服务器本地日期格式问题,谢谢各位
  • 打赏
  • 举报
回复
应该就是系统的日历格式问题 你可以不用tostring来格式化 自己拼接字符串
秋的红果实 2019-05-08
  • 打赏
  • 举报
回复
日期的一串不要放到mappath外边 ==> 日期的一串放到mappath外边
秋的红果实 2019-05-08
  • 打赏
  • 举报
回复
日期的一串不要放到mappath外边
秋的红果实 2019-05-08
  • 打赏
  • 举报
回复
两种结果对比,就是第二次当作日期了,你强制转化下

string path = Server.MapPath("./")+DateTime.Now.Year.ToString()+"\\"+DateTime.Now.Month.ToString()+"\\"+DateTime.Now.Day.ToString();

还不行,可以 string path = Server.MapPath("./")+(DateTime.Now.Year.ToString()+"\\"+DateTime.Now.Month.ToString()+"\\"+DateTime.Now.Day.ToString()).ToString(); 不管他服务器什么格式,这么转化后应该可以吧
  • 打赏
  • 举报
回复
我能想到的差异也是时间日期格式的问题,你先检查一下代码,到底你的目录是怎么获取的,如果实在是找不到可以到区域设置里面调整一下时间日期格式
epui2008 2019-05-08
  • 打赏
  • 举报
回复
引用 3 楼 stherix 的回复:
你有没有发现日期的tostring由/分割变成了-,导致不会被识别为文件夹,但是你写了yyyy/MM/dd,理论上不会有这问题的,还是检查下代码吧,写下日志
是的,我调试的时候路径都是正常的,既然大哥你这么说了,我换种写法试试
stherix 2019-05-08
  • 打赏
  • 举报
回复
你有没有发现日期的tostring由/分割变成了-,导致不会被识别为文件夹,但是你写了yyyy/MM/dd,理论上不会有这问题的,还是检查下代码吧,写下日志
大鱼> 2019-05-08
  • 打赏
  • 举报
回复
不应该啊,我现在也是使用的阿里云,同样我上传的文件也是按日期进行保存的,但是没有出现你说的那么奇怪的问题啊
OrdinaryCoder 2019-05-08
  • 打赏
  • 举报
回复
我之前看其他的贴子说在服务器上 路径前面会加上服务器地址

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧