java jsp中如何实现下载.csv文件、并自动保存到指定的文件夹下

java jsp中如何实现下载.csv文件、并自动保存到指定的文件夹下,第1张

你这种想法不太现实

首先你客户端要跟服务器交互是要客户端主动发送请求

然后建立连接去 *** 作

就算你不手动选保存路径,那你还是要写代码去实现这个过程的

实现方式就两种了

bs跟cs架构均可

思路是一样的

BS:

servlet读取本地文件,然后以流的形式输出就行,注意要设置输出的MINE类型也就是contentType

你客户端写个程序通过http访问这个servlet,然后通过程序去保存到你移动硬盘

如果是cs架构的话,你的服务端监听socket

如果有客户端连接那就等待接收命令或者是直接往客户端传文件的二进制流

客户端:已启动就连接服务端,发送文件请求,处理回传的文件字节流

linux 下,可以使用cli程序把csv文件导入到数据库。具体代码如下:

$ORACLE_HOME/bin/sqlplus -S username/password@instanceName > /dev/null 2>&1  <<!!

#对sqlplus作一些设置,使之只输出我们需要的文本

set echo off

set pagesize 0

set verify off

set feedback off

set termout off

set linesize 3000

set trimspool on

#查询输出到临时文件

spool /tmp/some_tmp.csv 

#select语句

select column1||','||column2||','||column3 ....

from some_table where condition

spool off

#这里可以添加多个查询,且每个查询可输出到不同的文件,如下面注释

#spool /tmp/some_tmp.csv 

#select column1||','||column2||','||column3 ....

#from some_table where condition

#spool off

set markup HTML off

quit

!!

#计算记录总行数,如果是0则不发邮件

NUM=`cat /tmp/some_tmp.csv | wc -l`

if[ $NUM -gt 0 ]

then

#先写excel的每列的title

echo 'Title_Of_Column1, Title_Of_Column2, ....Title_Of_ColumnN' > /tmp/attachement.csv

#数据正文

cat /tmp/some_tmp.csv >> /tmp/attachement.csv

#发邮件

(

echo "From: user@somehost.com"

echo "To: user1@somehost.com"

echo "MIME-Version: 1.0"

echo "Content-Type: multipart/mixed"

echo ' boundary="A_Boundary_Name_You_Can_Change_It"'

echo "Subject: Subject"

echo ""

echo ""

#附件分隔符,上面的boundary前面加--

echo "--A_Boundary_Name_You_Can_Change_It"

echo 'Content-Transfer-Encoding: x-uuencode'

echo 'Content-Type: text/csv'

echo '        name="attachement.csv"'

echo 'Content-Disposition: attachment'

echo '        filename="attachement.csv"'

echo ""

uuencode /tmp/attachement.csv attachement.csv

echo "--A_Boundary_Name_You_Can_Change_It"

#附件结束

) | mailx -t

fi

#删除临时文件

rm -f /tmp/*.csv

exit 0


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7628920.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-08
下一篇2023-04-08

发表评论

登录后才能评论

评论列表(0条)

    保存