从数据库中获取文件转成的byte[] 文件名 文件类型。我要怎么拨给浏览器下载

图片说明

如图的话

图片说明

浏览器接收到了一堆东西 但是没有开启下载

3个回答

一个简单而且符合springmvc方式的做法:
https://my.oschina.net/datevan/blog/654593

   @RequestMapping("download")  
    public ResponseEntity<byte[]> download() throws IOException {  
        HttpHeaders headers = new HttpHeaders();  
       // headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);  
        //设置文件名
        headers.setContentDispositionFormData("attachment", "a.xls");  
        String file = TestController.class.getResource("/config/").getPath()+"a.xls";

        //把文件转成字节数组
        File byteFile = new File(file);
        int size = (int) byteFile.length();
        FileInputStream inputStream = new FileInputStream(byteFile);
        byte[] bytes = new byte[size];

        int offset=0;
        int readed;
        while(offset<size && (readed = inputStream.read(bytes, offset,inputStream.available() )) != -1){
            offset+=readed;
        }
        inputStream.close();

        //返回
        return new ResponseEntity<byte[]>(bytes,headers, HttpStatus.OK);  
    }
qq_38817306
qq_38817306 最终用ResponseEntity搞掂了 最重要的问题是。。。我页面一开始没用A标签提交
大约一年之前 回复
qq_38817306
qq_38817306 org.springframework.http.converter.json.MappingJackson2HttpMessageConverter 我看到配置文件有这个东西。。是不是禁止下载了
大约一年之前 回复

/**
* 文件下载
* @param response
* @param fileName 文件名称
* @param filePath 文件服务器地址
*/
@RequestMapping("/download")
public void downloadFile(HttpServletResponse response, @RequestParam("fileName")String fileName, @RequestParam("filePath") String filePath){
OutputStream os = null;
try{
os = response.getOutputStream();
fileName = URLEncoder.encode(fileName, "UTF-8");
byte[] bytes = FastdfsClientUtil.downloadFileInner(filePath);
os.write(bytes);
response.setContentType("application/octet-stream;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
os.flush();
}catch(Exception e){
LOGGER.error("下载文件失败", e);
}finally {
if(os != null){
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}//之前详细研究过浏览器下载文件的需求 包括不同浏览器的支持,文件下载,文件预览

qq_38817306
qq_38817306 去看了 也改了下 还是不行 感觉我mvc拦截了
大约一年之前 回复
weixin_40899682
IT清流李小白 回复qq_38817306: https://blog.csdn.net/ios_xumin/article/details/52944366 看这个了解一下,然后debug你的代码查看文件类型
大约一年之前 回复
qq_38817306
qq_38817306 回复weixin_40899682: 下载类型是指哪里?
大约一年之前 回复
weixin_40899682
IT清流李小白 回复qq_38817306: 顺带提示一下 你的入参传入了两个HttpServletResponse
大约一年之前 回复
weixin_40899682
IT清流李小白 回复qq_38817306: response.setContentType("application/octet-stream;charset=UTF-8"); 看一下设置的下载类型和文件类型是否一致,建议指定一下编码集
大约一年之前 回复
qq_38817306
qq_38817306 回复weixin_40899682: fileName得包含后缀是吗?我 的fileName包含后缀的 然后传给浏览器 看network接收了22MB数据 但是没下载
大约一年之前 回复
weixin_40899682
IT清流李小白 回复qq_38817306: 你可以读取出来然后创建OutputStream 对象调用write方法写入,记得请求头可以设置下载文件的格式,不然就会出现无法解析下载的问题或下载后乱码的问题
大约一年之前 回复
qq_38817306
qq_38817306 但我这个文件没有服务器地址啊,它以BLOB的byte[]形式存放在数据库字段中
大约一年之前 回复

顺带提示一下 你的入参传入了两个HttpServletResponse

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
从数据库中获取文件转成的byte[] 文件名 文件类型。我要怎么拨给浏览器下载
![图片说明](https://img-ask.csdn.net/upload/201809/20/1537409787_137938.png)rnrn如图的话 rnrn![图片说明](https://img-ask.csdn.net/upload/201809/20/1537409850_526046.png)rnrn浏览器接收到了一堆东西 但是没有开启下载
文件上传 获取文件,文件名,文件类型
name=file [code=&quot;java&quot;] private File file; private String fileFileName; private String fileContentType; [/code] name=uploadFile [code=&quot;java&quot;] private File uploadFile=null; private String up...
byte*怎么转成byte[]
byte*怎么转成byte[]
获取文件类型和文件名
#include   #include   #include   void get_extension(const char *file_name,char *extension,char *name)   {       int i=0,length;       length=strlen(file_name);           while(file_name[i])  
从数据库读取下载文件名
[code=C#]rn protected void download(object sender, EventArgs e)rn rn string tableName = "tbl_attach";rn string filedesc = "filedesc";rn string strConn = "server=.;database=web;uid=sa;pwd=rezin";rn SqlConnection cn = new SqlConnection(strConn);rn SqlCommand cm = new SqlCommand();rn cm.Connection = cn;rn cm.CommandType = CommandType.Text;rn if (cn.State == 0)rn rn cn.Open();rn rn cm.CommandText = "select " + filedesc + " from " + tableName + " where attachid=5";rn //SqlDataReader results = cm.ExecuteReader();rn //客户端保存的文件名rn string fileName = "bbb.zip";rn //下载路径rn string filePath = Server.MapPath("Download/aaa.txt");rn //以字符流的形式下载文件rn FileStream fs = new FileStream(filePath, FileMode.Open);rn byte[] bytes = new byte[(int)fs.Length];rn fs.Read(bytes, 0, bytes.Length);rn fs.Close();rn Response.ContentType = "application/octet-stream";rn //通知浏览器下载文件而不是打开rn Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));rn Response.BinaryWrite(bytes);rn Response.Flush();rn Response.End();rn rn[/code]rnrn新手,在网上参考的代码,我想知道怎么下载从数据库取出的文件名,用cm.CommandText下载的是sql(cm.CommandText = "select " + filedesc + " from " + tableName + " where attachid=5";)语句,怎样才能显示为查询出来的文件名,还有string fileName = "bbb.zip";下载文件名怎么显示为默认的名字!谢谢!
struts2文件上传获取文件名、文件类型
开发公司项目时遇到这样一个问题,当前端上传一个文件到后台action类中,发现取出来的文件名、文件类型都变了。这是为什么呢?我们又该怎么获取文件名称和文件类型呢? 于是找了大量的资料发现: Strut2的Action类直接通过File类型属性直接封装了上传文件的文件内容,但这个File属性 无法获取上传文件的文件名和文件类型,所以Struts2就直接将文件域中包含的上传文件名和文件类型的信息封
从文件夹中获取指定文件的文件名
从文件夹中获取指定文件的文件名 有时候我们需要从文件夹中判断一个指定的文件是否存在,如果存在就返回文件名+后缀名,不存在返回空。 前台请求获取响应的文件名 @RequestMapping(&amp;amp;amp;amp;quot;/getText&amp;amp;amp;amp;quot;) @ResponseBody public String getText(HttpServletRequest request){ //根据uploadPath(存储路径参数)获取相应的文...
string 怎么转成byte()
string 怎么转成byte()
short 怎么转成 BYTE?
一个LPSTR lp 我用(LPSTR)GlobalAllocPtr[?,xxxx];分配的全局.rn一个short sh[xxxx];rn一个BYTE* by[xxxx] = new BYTE[xxxx];rn这三者怎么互换?rn我只会lp to sh,sh to lp.rnby怎么转?我转不过来.rn救命!!!
如果从byte转成中文。
大家好!rn有谁知道吧byte流转换成中文的方法?rn如果是“纯”中文(不含英文字母),我用new String(s.getByte("getBytes("ISO8859_1"), "GBK")是可以实现的。但是同样的方法,当s中含英文字母就不行了,请问有什么通用的简单的方法?rn谢谢!
怎么得到我要的文件名
如果说一个文件夹下有很多文件 我要拿出我要的那个文件,但是那个文件的文件名前半部分是不确定 只有后面如这样“20090505-test.txt”中的-test是固定在的,现在怎么在多个文件中得到这个有-test的文件
怎么得到internet上我要下载的文件的文件名啊
怎么得到internet上我要下载的文件的文件名啊 rn
怎么把服务器上的文件转成BYTE保存到数据库?
不是上传的文件,是读取服务器上的文件,然后存到数据库
怎么从文件名中找图片文件?
FolderBrowserDialog fbd=new FolderBrowserDialog();rnif(fbd.ShowDialog()==DialogResult.OK)rnrn DirectoryInfo di=(fbd.SelectPath);rn FileInfo[] fileList=di.GetFiles;rn ArrayList arr=new ArrayList();rn foreach(FileInfo fi in fileList)rn rn arr.Add(fi.FullName);rn rn arrNames=(string[])arr.ToArray(typeof(string));rn picMain.Image=Image.FromFile(arrNames[0]);rnrnrn上面代码是从用户选择的文件夹中找出所有文件名,以显示图片.rn怎么筛选出图片?(我只要 *.jpg,*.png,*.bmp等文件的文件名)
Beego ———— 从浏览器中获取文件
 新建一个controller  实现对文件的获取并保存功能 package controllers import ( &quot;github.com/astaxie/beego&quot; &quot;fmt&quot; &quot;strings&quot; ) type Demo3Controller struct { beego.Controller } func (this *Demo3Controller)Getfile()...
获取文件类型和文件的图标
是这样子的,现在想用listview控件,做一个类似系统里的文件查看方式为详细资料的结果一样.rnrn (图标)文件名称 大小 类型 rnrn ***** 0kb 文本文档rnrn现在知道文件名称,想知道和文件名关联的图标,还有文件类型怎么取?rn先谢了,最好给代码
下载的文件没有文件类型
1.概述 c语言好像不能直接下载文件(一个做java不知道,苦笑。。。),所以让我转发文件,其实就是让我读取流,然后将流写出。 采用SpringMVC+Spring框架 2.文件名称和类型怎么确定呢 浏览器它也不知道这个是什么类型,只知道是字节流,那么浏览器大哥他有自己判断标准,也就是最后一个"/"整个部分 @ResponseBody @RequestMapping(value="
怎么把转成的byte数组再转成之前的文件?
我在Oracle中的一张表中有一个BLOB字段,我插入的时候是把文件转成Byte这样插入的,现在我想取出来,再把它存到另外一个文件家里面,不知道可以吗?
怎么获取浏览器的下载链接
大侠们,帮帮忙啊,我最近在研究浏览器的课题,现在在做浏览器下载那块,就是做一个类型IE下载弹出窗体那样的(点下载链接弹出的窗体),怎么才能获取下载的链接,下载的文件名呢?谢谢大侠们的支持和指导,无尽感激!
怎么下载数据库中文件?
我要把学生上传到数据库里的文件下载下来,怎么做?最简单的!
从数据库中读取文件名怎么去掉文件名的后缀?
我从前台上传文件,要在用户那里显示文件名,但要去掉后缀。怎么样才能只显示文件名而不带后缀呢?
怎么获取文件类型
用C语言怎么获取文件类型?
vc.net中怎么把byte转成字符串
如题 谢谢 学vc 郁闷中.....rnlistbox 用法的教程谁有 给一个链接谢谢了
怎么把byte[]转成字符串
我收到的 byte[] 是安卓发来的utf8 的 byte[],现在要转成 C#可以识别的utf16,然后判断字符串是否相等。rn问题1:怎么转rn问题2:用==? 还是用equal函数?
怎么把String转成byte?
dim b as byternrnb=cbyte(chr(12))rnb=chr(12)rnb=cbyte(chrb(12))rnb=chrb(12)rnb=cbyte(chrw(12))rnb=chrw(12)rn我想把一个数字转成字符再赋给b,上面这样出错=类型不匹配?rn
一个byte怎么转成网络字节序
一个byte怎么转成网络字节序
怎么把二进制文件转成byte[] ?
谢谢
怎么把byte[]转成string?
我用byte的toString函数,可得到的结果是不是原byte串,而是字符串“system.byte[]”。是我使用的有问题还是本身有错?我用的是VS2005。如果这样不能转,那有什么办法呢?
byte流怎么转成Image
请问gif或jpg图片的内容(byte流)怎么转成Image并显示出来?rn我有看到一个函数Image.createImage(byte[], int, int)好像可以转,但找不到包含它的包啊。
byte[] 数组怎么转成 long
byte[] 数组怎么转成 long
怎么将string 转成 byte[]
问题一: 怎么将string 转成 byte[];rnrn问题二:怎么将int 转成 byte[]
java读取resource/通过文件名获取文件类型
java读取resourcejava读取resource目录下文件的方法: 借助Guava库的Resource类Resources.getResource("test.txt")通过文件名获取文件类型mongodbjava
文件从数据库下载时如何指定其文件名及扩展名?
文件从数据库下载时如何指定其文件名及扩展名?
从数据库读取的文件如何下载的时候是原文件名?
我使用asp+sql server2000rnrn我将上载的文件保存到数据库中rn数据库结构如下rn3 uploadID int 4 0rn0 filename char 50 1rn0 Content_Type char 50 1rn0 filedata image 16 1rn0 filesize int 4 1rn0 uploadtime datetime 8 1rn在另外一个页面(read.asp)显示的时候rn我希望显示文件名,点击文件名,能够从数据库读取文件rn现在问题是rn如果上载的文件是abc.doc(word格式)等rn下载的时候文件名为read.docrn如果上载的文件是abc.exe(其他格式)等rn下载的时候文件名为read.asprn很不方便,我希望,无论是什么格式rn下载的时候提示我保存依然是原文件名rn请问如何做到??rn谢谢rnrn
smooks谁知道怎么从其他文件类型转成edi
官网给的例子里都是edi转其他的,没找到java或者xml转成edi的,有人做过这方面的吗。或者不用smooks实现,用其他方式。急用啊
怎样获取下载的文件名?
有一个连接,例如:http://www.abc.com/lsit.asp?id=100rn 这个连接是指向一个def.rar文件,正常点击会下载该文件,rn 那么,我怎样用程序(c#)知道这个文件名叫:def.rar?rn 多谢指教?
实现点击下载如何可以显示这个文件的文件名和文件类型?
我在CSDN上找到这个直接点击下载的方法,可用。rn但是在保存的窗口显示的文件名和类型都是统一的download和文本类型。rn不知道是否可以改成我要下载的文件名和类型。rn或者有其他更好的方法。谢谢。rnrn<%rnDim StreamrnDim ContentsrnDim FileNamernDim FileExtrnConst adTypeBinary = 1rnFileName = Request.QueryString("FileName")rnif FileName = "" Thenrn Response.Write "无效文件名."rn Response.EndrnEnd ifrn' 下面是不希望下载的文件rnFileExt = Mid(FileName, InStrRev(FileName, ".") + 1)rnSelect Case UCase(FileExt)rn Case "ASP", "ASA", "ASPX", "ASAX", "MDB"rn Response.Write "受保护文件,不能下载."rn Response.EndrnEnd Selectrn' 下载这个文件rnResponse.ClearrnResponse.ContentType = "application/octet-stream"rnResponse.AddHeader "content-disposition", "attachment; filename=" & FileNamernSet Stream = server.CreateObject("ADODB.Stream")rnStream.Type = adTypeBinaryrnStream.OpenrnStream.LoadFromFile Server.MapPath(FileName)rnWhile Not Stream.EOSrn Response.BinaryWrite Stream.Read(1024 * 64)rnWendrnStream.ClosernSet Stream = NothingrnResponse.FlushrnResponse.Endrn%>rn使用:Download.asp?FileName=/Files/MY.docrn把你的DOC文件放到根目录Files下,你也可以放到其它地方了。rnrn如:rn点击下载WORD文档rnrn
构造函数 X509Certificate (Byte[]) Byte[]从那里获取????
X509Certificate cert = new X509Certificate (Byte[]) rn这个Byte[]从那里得到呢,指的是什么?rn我用的.Net Compact Framework,只有这个构造函数了 :(
怎样获得Internet上的供下载的文件的文件名和文件类型?
http://www.southernfund.com/customer/DownloadServlet?newsID=1111710228578rn如上面的超级链接,目标文件是DownloadServlet.docrn是通过重定向来取得的(Redirect),在wininet函数族中用HttpQueryInfo能查到这两个信息吗?
我要获取数据库
我不是这个意思,我是想获取包括:系统数据库和用户数据据在内的所有数据据库,如:rnmaster,model,msdb等.
相关热词 c# login 居中 c# 考试软件 c# 自然语言分析 c# 分段读取文件 c# 泛型反射 c#打断点 c# 时间转多少秒 c# 线程函数加参数 c# modbus 读取 c#查询集合表

相似问题

1
Android中如何把Byte数组中缓存的帧合成MP4文件?
3
为什么要用byte b[]=new byte[1024];?如果我的文件大于1KB,不是发生溢出了吗?
2
Android 将文件流写入byte数组之后,再转换成Base64字符串总是得到乱码的结果
1
怎么把mysql数据库中的图片显示在mui的界面上
2
JAVA问题:byte类型数组里的值和int型的值运算过后为什么还能存放在byte类型数组中?
2
我用byte类型的变量 += 一个int类型的变量 最后的值是会自动强制转换成byte类型吗
0
byte[]写入和读取数据库DB2
1
vs2019 arithmetic overfolw:(两个数相减会导致4byte的结果转换为8byte)????
2
servlet 下载文件时文件名中文乱码问题一直解决不了
2
python2 中tkinter 打开文件 中文乱码
1
go语言中string和[]byte互转遇到的奇怪问题?
2
SpringMVC 输出pdf到浏览器打开预览并下载 文件名如何去掉.do
1
java中多个byte[]组合成一个有什么好办法
1
Java的IO流拷贝图片成功,但是加载不出来,显示不支持此文件格式是什么原因,跪求大佬指点!
1
javasound如何把byte数组的音频写入文件?任何格式都可以。
1
C# HttpWebResponse如何获取response body的HEX格式的数据?
2
我有md5加密工具类了,但是不会去调用,要在哪个层去调用?
3
这是一个MD5加密工具类,登陆始终是失败的,我用相同的密码123456多次注册发现加密后的密码字符串都是不同的,是不是工具类有错误的原因?
1
Jpedal 读取pdf转图片 出现空白页面
2
python读取hgt文件的坐标不统一