网上查了好多资料,说有两种方法:
1.将图片的做成二进制传到前端
2.将图片的url传到前端,推荐使用
我也使用了第二种传递url,启动的时候会报错:Not allowed to load local resource
像这样的情况,应该如何解决
看你图片明显路径不对啊,浏览器怎么能直接读你服务器磁盘文件呢。直接用流赋值给src也是一样的
1路径不对是吧?2配置服务器好像默认允许可以加载的。什么服务器?
路径是没有问题,问题是浏览器保护机制,就是不让加载本地资源?
@听风2008:路径是什么啊? 得是绝对路径。。 不能是相对路径
@凡事无绝对!: 就是绝对路径
@听风2008: 绝对路径是带域名,把路径发出来我看一下。浏览器能看到么?
@凡事无绝对!: 具体怎么操作,有demo吗?我的路径就是本地磁盘的路径,浏览
器是可以到的
@听风2008: 需要是服务绝对路径。例如 你那个是本机的绝对路径,获取不到的、例如 https://img.alicdn.com/bao/uploaded/TB1Wy5mo67nBKNjSZLeSuvxCFXa.jpg
@凡事无绝对!: 嗯嗯,我看到有人说需要把图片上传到服务器上,还说什么配置虚拟目录,问题就是到这边卡住了,不知道怎么往下走。
@凡事无绝对!: 或者说您这样的服务器路径是怎么做出来的???
@听风2008: 有个方法是将绝对路径转到服务器路径。Server.MapPath(upPath) 这个方法就是把你那个路径变成服务器路径。var domain = System.Configuration.ConfigurationManager.AppSettings["Domain"];
HttpFileCollection hfc = System.Web.HttpContext.Current.Request.Files;
string upFileType = "|image/bmp|image/x-png|image/pjpeg|image/gif|image/png|image/jpeg|";
int upLength = 5;
string imgPath = "";
string upPath = "/upload/"; //上传文件路径
if (hfc.Count > 0)
{
string fileContentType = hfc[0].ContentType; //文件类型
if (upFileType.IndexOf(fileContentType.ToLower()) > 0)
{
string name = hfc[0].FileName; // 客户端文件路径
FileInfo file = new FileInfo(name);
string fileName = name.Substring(0, name.IndexOf(file.Extension)) + "_" + DateTime.Now.ToString("yyyyMMddhhmmssfff") + file.Extension; // 文件名称,当前时间(yyyyMMddhhmmssfff)
string webFilePath = Server.MapPath(upPath) + fileName; // 服务器端文件路径
string FilePath = upPath + fileName; //页面中使用的路径
if ((hfc[0].ContentLength / (1024 * 1024)) > upLength)
{
throw new Exception("大小超出 " + upLength + " M的限制,请处理后再上传!");
}
try
{
hfc[0].SaveAs(webFilePath);
imgPath = domain + FilePath;
}
catch (Exception ex)
{
//ClientScript.RegisterStartupScript(this.GetType(), "upfileOK", "alert('提示:文件上传失败" + ex.Message + "');", true);
throw new Exception("提示:文件上传失败" + ex.Message);
}
}
}
return imgPath;
@凡事无绝对!: 您好,这个demo您测试过吗?我跑不起来
传的url不对,要是 http 或 https 开头的
我的url是本地的绝对路径
没有所谓1和2。只是1是使用你的函数实现的,而2是使用托管环境以外的默认函数实现而已,本质一样。Not Allow只是权限配置等问题。通过分析你会发现2会请求两次。
那我要是想用第二种方式,怎么实现呢?
@听风2008: 你浏览器怎么打开 把 图片固定名称 改成参数不就行了,有什么可思考的
@花飘水流兮: 有没有具体的demo,您说的我不是很明白
浏览器脱机就Ok啦,也可以提高安全等级。
图片存个地方
前端加载正确路径
您所谓是正确路径指的是什么?
@听风2008: 路径能找到或打开图片
@ycyzharry: 哥,我的错误信息是不允许我加载资源,并不是找不到资源,所以路径是肯定没问题的,楼上有位哥们说的有道理,将本地资源的目录转化成服务器路径,这个方法应该是可以的,但是我不会。
来点代码
– Mad_Rabbit 6年前