php 下载网站根目录以外的文件,同一服务器

服务器运行磁盘较小,重新挂载一个磁盘,路径为/data 项目根目录路径/var/ww/root/html 项目需求:下载data下的文件,于是配置了一个新的server :

#文件下载
server {
listen 81;
server_name  localhost;
location / {
root   /data;
index  index.html index.htm index.php ;
try_files $uri $uri/ /index.php$is_args$args;
}
error_page   500 502 503 504  /50x.html;location = /50x.html {
root   html;}
location ~ \.php$ {
root /data;
fastcgi_pass    127.0.0.1:9000;
fastcgi_index   index.php;
fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
include   fastcgi_params;
}}

现在通过url:

```html
”<a

  • href="ip:81/data/aa.xml'" download class="easyui-linkbutton c9 l-btn l-btn-small">“

```地址下载文件 发现文件直接在浏览器打开 有说是服务器跨站的问题 现在不知道怎么解决。

需求aa.xml文件正常下载就行

虚拟目录可以解决你的问题
或者说是虚拟主机

https://blog.csdn.net/jueji1998/article/details/114257844
哥,采纳了吧

如果url指向第三方资源,download会失效,表现和不使用download时一致——浏览器能打开的文件,浏览器会直接打开,不能打开的文件,会直接下载。浏览器打开的文件,可以手动下载。

解决方案一:将文件打包为.zip/.rar等浏览器不能打开的文件下载。

解决方案二:通过后端转发,后端请求第三方资源,返回给前端,前端使用file-saver等工具保存文件。

浏览器已经限制死跨域下载多媒体文件的各种方式。

最正规的办法还是让后端做一次转发。请求后端,后端向第三方请求文件,返回给前端,前端保存文件。

直接在需要下载的那个nginx配置下加个头部 告诉浏览器这个资源是不需要解析,需要下载 的就好了

add_header Content-Disposition "attachment";