JQuery 没有直接设置文件属性。JQuery 表示一些 Javascript 代码,而 Javascript 是一种客户端脚本语言。这意味着你可以做一些事情,只能在客户端,不能在服务器端。
但是有一些间接的方法可以做到这一点。首先,唯一的方法是在服务器端设置文件名。这取决于您在服务器端使用的语言。取决于服务器端语言,您可以编写自己的下载 web api。将文件名作为请求参数传递给您的 api,并让它为您提供具有自定义文件名的文件。我不知道您在服务器端使用什么语言,但我用 node.js 准备了一个服务器端代码,它接受“GET”请求中的自定义文件名作为参数。
var sys = require ('sys'),
url = require('url'),
http = require('http'),
qs = require('querystring');
var path = require('path');
var mime = require('mime');
var fs = require('fs');
var server=http.createServer(
function (request, response) {
if(request.method=='GET') {
var filePath='path_to_your_file_in_your_server_file_system';
var filestream = fs.createReadStream(filePath);
var url_parts = url.parse(request.url,true);
console.log(url_parts);
var fileName= url_parts.query.fileName; //Taking your customized file name from GET request parameters.
if(!fileName)
{
fileName=path.basename(filePath);
}
var mimetype = mime.lookup(filePath);
response.setHeader('Content-disposition', 'attachment; filename=' + fileName);
response.setHeader('Content-type', mimetype);
filestream.pipe(response);
response.writeHead( 200 );
response.end();
}
}
);
server.listen( 9080 );
当您使用 node.js 运行此服务器代码时,您可以从 url 获取具有自定义文件名的文件 localhost:9080?fileName=yourCustomizedFileName
。如您所见,我们在 url 中提供了 fileName 'GET' 请求参数。您可以使用 javascript windows.location 或其他方式在客户端 Javascript 代码上使用自定义文件名获取文件。不要让 node.js 代码让您感到困惑。解决方案的重点是编写一个下载 api,该 api 从 'GET' 请求中获取 fileName 参数,以将具有此名称的文件发送给客户端。
您可以将此 node.js 代码应用于您的服务器端语言或研究如何应用它。可能,它不会很难找到和应用它。