我正在尝试转换一些法语加拿大语的字符串,基本上,我希望能够在保留字母的同时取出字母中的法语重音符号.(例如转换é为e,所以crème brûlée会变成creme brulee)
实现这一目标的最佳方法是什么?
是什么之间的区别Unicode,UTF8,UTF7,UTF16,UTF32,ASCII,和ANSI编码?
这些对程序员有什么帮助?
我希望网站上的用户能够下载路径被遮挡的文件,因此无法直接下载.
例如,我希望URL是这样的," http://example.com/download/?f=somefile.txt
在服务器上,我知道所有可下载文件都位于"/ home/user/files /"文件夹中.
有没有办法让Django提供该文件供下载,而不是试图找到一个URL和View来显示它?
我在一些响应中返回一个流,设置适当的内容类型标题.我正在寻找的行为是这样的:
如果浏览器能够呈现给定内容类型的内容,那么它应该在浏览器窗口中显示它.
如果浏览器不知道如何呈现内容,那么它应该显示saveas对话框,其中文件名应该是响应中提供的文件名.
如果我使用以下内容设置Content-Disposition标头的问题:
"attachment; filename ="myfile.txt""
浏览器将始终显示"保存"对话框.
如果我没有设置Content-Disposition,则saveas对话框中使用的文件名是url中的文件名,在我的情况下不起作用.
我也尝试将Content-Disposition设置为内联,但结果是一样的.
http httpresponse httpwebresponse content-disposition http-headers
如何在Internet Explorer中初始化文件的自动下载?
例如,在下载页面中,我想要显示下载链接并显示一条消息:"如果下载没有自动启动......等等".下载应该在页面加载后不久开始.
在Firefox中这很容易,你只需要在标题中包含一个元标记,<meta http-equiv="Refresh" content="n;url">其中n是秒数,url是下载URL.这在Internet Explorer中不起作用.如何在Internet Explorer浏览器中使用此功能?
如何在Django中为用户提供动态生成的ZIP存档?
我正在制作一个网站,用户可以选择任意书籍组合并将其下载为ZIP存档.我担心为每个请求生成这样的存档会使我的服务器慢慢爬行.我还听说Django目前没有一个很好的解决方案来提供动态生成的文件.
我有这段代码:
resp.addHeader("Content-Disposition", "inline; filename=" + fileName);
Run Code Online (Sandbox Code Playgroud)
当文件名是"a_b_c.doc"或"abc.doc"时,正确显示下载文件的名称.但是,当文件名是"abc .doc"时,下载文件的名称只是"a".
我们怎么解决这个问题?
我下载文件作为ajax的响应.如何从内容处理中获取文件名和文件类型,并为其显示缩略图.我有很多搜索结果,但找不到正确的方法.
$(".download_btn").click(function () {
var uiid = $(this).data("id2");
$.ajax({
url: "http://localhost:8080/prj/" + data + "/" + uiid + "/getfile",
type: "GET",
error: function (jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
},
success: function (response, status, xhr)
{
var header = xhr.getResponseHeader('Content-Disposition');
console.log(header);
}
});
Run Code Online (Sandbox Code Playgroud)
控制台输出:inline; filename=demo3.png
此线程是如何在HTTP中编码Content-Disposition标头的filename参数的副本? 但是,由于很久以前就提出这个问题并且仍然没有令人满意的答案(在我看来),我想再问一次.
我开发了一个C++ CGI应用程序,它可以提供名称中包含特殊字符的文件,例如
" weird#€= {}; filename.txt "
似乎没有可能以适合每个浏览器的方式设置HTTP Content-Dispostion
我会为每个浏览器提供不同的解决方案.
现在我走了多远:
Internet Explorer(添加双引号并替换#和;)
Content-Disposition: attachment; filename="weird %23 € = { } %3B filename.txt"
Run Code Online (Sandbox Code Playgroud)
Firefox(双引号似乎工作.没有更多事情要做):
Content-Disposition: attachment; filename="weird # € = { } ; filename.txt"
Run Code Online (Sandbox Code Playgroud)
另一种工作方式:
Content-Disposition: attachment; filename*=UTF-8''weird%20%23%20%e2%82%ac%20%3D%20%7B%20%7D%20%3B%20filename.txt
Run Code Online (Sandbox Code Playgroud)
铬
当只使用双引号时会出现这些问题:
但这有效:
Content-Disposition: attachment; filename*=UTF-8''weird%20%23%20%e2%82%ac%20%3D%20%7B%20%7D%20%3B%20filename.txt
Run Code Online (Sandbox Code Playgroud)
歌剧
使用duoble引号或使用语法:filename*= UTF-8''...会产生以下问题:
当我想将文件的全部内容写入a时OutputStream,我通常会将缓冲区分配为a byte[],然后for将read数据从文件循环到InputStream缓冲区并将缓冲区内容写入OutputStream,直到InputStream没有更多的字节可用.
这对我来说似乎很笨拙.有一个更好的方法吗?
另外,我总是不确定缓冲区大小.通常,我分配1024个字节,因为它感觉很好.有没有更好的方法来确定合理的缓冲区大小?
在我目前的情况下,我想将文件的全部内容复制到写入HTTP响应内容的输出流中.因此,这不是关于如何在文件系统上复制文件的问题.