我已经使用 NanoHttpd 在本地网络上成功实现了文件传输。但是,我无法在 NanoHttpd 响应中发送文件名。接收到的文件具有这样的默认名称:localhost_8080。我尝试使用在响应标头中附加文件名Content-disposition
,但我的文件传输都失败了。我究竟做错了什么?这是我的实现:
private class WebServer extends NanoHTTPD {
String MIME_TYPE;
File file;
public WebServer() {
super(PORT);
}
@Override
public Response serve(String uri, Method method,
Map<String, String> header, Map<String, String> parameters,
Map<String, String> files) {
try {
file=new File(fileToStream);
fis = new FileInputStream(file);
bis = new BufferedInputStream(fis);
MIME_TYPE= URLConnection.guessContentTypeFromName(file.getName());
} catch (IOException ioe) {
Log.w("Httpd", ioe.toString());
}
NanoHTTPD.Response res=new NanoHTTPD.Response(Status.OK, MIME_TYPE, bis);
res.addHeader("Content-Disposition: attachment; filename=", file.getName());
return res;
}
}
谢谢你的帮助!