zoukankan      html  css  js  c++  java
  • 跨域取文件(跨项目)

    本篇详解如何跨项目去文件。主要是因为我们经常在后台添加资源,我们需要在前台的项目中访问添加的资源,这样的问题就会有。

    下面的列子是测试图片,换成其他的文件都可以。

    ①先看看我们在一个项目中如何取吧

    在项目一中,我新建了文件夹,存了一张图

    页面上放了两个图片标签

    取路径的两种方式都写了,  取服务器路径,取本地路径。

      string path = "";
                path = Server.MapPath("~/img/1.png");//这里给的服务器的路径,返回的是物理路径  格式为下面的字符串格式
               //D:\VS2015NewProject\WebApplication1\WebApplication1\img\1.png
                imgPath = path;
                Response.Write(path); //返回在页面上就是单个斜杠了
                Image1.ImageUrl = "~/img/1.png";  //直接服务器的路径

    经测试有一张图片显示不了,这并不是我们的路径所致,把上面的字符串放在地址栏,回车会显示出图片。虽然显示不了,当我们确实是取到图片的路径了。

    跨项目取资源

    接着我新建了一个项目

    我们在这个项目里面取上个项目里面的图片

    也是两种可以去到资源,一种也是通过本地路径也就是磁盘路径,还有一种直接方法带域名的地址

                string aa = ConfigurationManager.AppSettings["WebUrl"].ToString();  //第一种,域名访问
                string bb = ConfigurationManager.AppSettings["LocalPath"].ToString();  //第二种,磁盘访问
                //bb  D:\VS2015NewProject\WebApplication1\WebApplication1            
                Response.Write("aa:"+aa+"<br>");
                Response.Write("bb:"+bb+"<br>");
                string path = "/img/1.png";
                Image1.ImageUrl =aa+path;
                Image2.ImageUrl = bb + path.Replace("/", "\"); //格式为 C:\A\B\C\XX.doc(等其他文件) 或者@C:Acxx.doc

    配置文件

    <appSettings> 
          <!-- 这个设置的是本地的,网站上线了是一个样,对于一些隐晦的信息我们可以利用.config来帮我们保存-->     
        <add key="WebUrl" value="http://localhost:25909"/> <!--利用域名来访问,上线了这里就是你网站的域名-->
        <add key="LocalPath" value="D:VS2015NewProjectWebApplication1WebApplication1"/>   <!--  在本地上访问,上线了 这里的路径就是你服务器上发布网站文件夹的路径-->
      </appSettings>

     

    下载:查看下载,下载单个Word就是给路径就可以了,下在图片就需要用Response来下载。 如果我们跨域下载,就找到图片的本地路径。就可以了。

      在一般处理程序中下载

        问题是这样的,我现在一般处理程序里面获取数据,然后返回,当我点击下载,还是继续访问这个一般处理程序,不管怎么样都下载不了,后来把下载图片单独做一个一般处理程序就好了

    单独写一个下载,把之前的代码移到一个单独的处理程序就好了。

    代码没变,这样就可以了

     context.Response.ContentType = "text/plain";
                string filePath = context.Request.QueryString["fileName"];
                try
                {
                    //图片下载给本地路径 WebUrl
                    string webPath = ConfigurationManager.AppSettings["LocalPath"];
                    string uploadPath = webPath + filePath.Replace("/", "\");
                    uploadPath = uploadPath.Replace(@"\", @"");
                    System.IO.FileInfo DownloadFile = new System.IO.FileInfo(uploadPath);
                    if (DownloadFile.Exists)
                    {
                        context.Response.Clear();
                        context.Response.ClearHeaders();
                        context.Response.Buffer = false;
                        context.Response.ContentType = "application/octet-stream";
                        context.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(DownloadFile.Name, System.Text.Encoding.ASCII));
                        context.Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
                        context.Response.WriteFile(DownloadFile.FullName);
                        context.Response.Flush();
                        context.Response.End();
                    }
                    else
                    {
                        //文件不存在 
                    }
                }
                catch (Exception me)
                {
                    string ms = me.Message;
                    //文件不存在
                }

     上传:  把一个文件上传到另一个项目中保存。

       利用本地路径保存文件就可以了

      C:aabccxx.xx  格式

  • 相关阅读:
    [ios] CGRect
    [.net] c# webservice
    [ios-必看] iOS 下实现解压缩
    [ios-必看] IOS调试技巧:当程序崩溃的时候怎么办 iphone IOS
    [ios-必看] 国人当自强:两岸三地在线编程学习网站大搜罗 [转]
    [ios-必看] WWDC 2013 Session笔记
    [oc] instancetype vs id for Objective-C 【转】
    [ios3-地图] 如何在iOS地图上高效的显示大量数据 [转]
    [ios2] iOS 7新功能的代码例子 【转】
    [ios2]BaaS服务收藏 【转】
  • 原文地址:https://www.cnblogs.com/Sea1ee/p/7340187.html
Copyright © 2011-2022 走看看