Web 前后端文件交互的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
cc7756789

Web 前后端文件交互的问题

  •  
  •   cc7756789 Oct 27, 2015 2956 views
    This topic created in 3838 days ago, the information mentioned may be changed or developed.

    我看大多数网站, 上传文件, 都会有刷新状态, 这是不是说明文件在信息发布之前就已经上传到后端了?
    那么如果不和普通的表单数据一起传给同一个后端路由存储的话, 单独的文件数据用什么变量记录文件名, 再和未上传的信息关联呢? 这时候如果表单数据和文件没有同时处理, HTTP 连接可能已经结束了. 变量什么的也销毁了.

    • 如果先保存数据到数据库, 再上传文件, 显得有些不人性化 !
    • 先保存了文件, 如果放弃信息发布, 那么从哪里找文件名去删除呢 ?
    • 难道只有保存部分未完成数据在后端的方法? 下次用户新建信息时把数据传递给他? 好像十分麻烦, 还要考虑用缓存或者设计单独的数据库保存这种未完成的数据 !
    6 replies    2015-10-27 11:57:29 +08:00
    adexbn
        1
    adexbn  
       Oct 27, 2015 via iPhone
    其实你可以前端生成文件名
    refresh
        2
    refresh  
       Oct 27, 2015   1
    1. 文件保存到一个临时目录,上传后给客户端返回文件名(uuid)
    2. 如果用户发布贴子,后台得到此文件名,复制此文件到正式目录
    3. 如果用户没发布贴子,临时目录会按日期定时清除
    cc7756789
        3
    cc7756789  
    OP
       Oct 27, 2015
    @refresh 多谢
    dong3580
        4
    dong3580  
       Oct 27, 2015
    做个服务器,定时扫文件对比数据库。
    然而如果不是特殊文件,例如视频之类的,硬盘空间占用不了多少,一般放弃信息发布也不做删除。
    况且你不能保证对方是程序出错退出,直接关闭浏览器放弃发布等等之类的...维护起来也麻烦。
    TingHaiJamiE
        5
    TingHaiJamiE  
       Oct 27, 2015
    我觉得如果是存了文件不入数据库,那么就不用删除。
    硬盘又不值钱。
    domty
        6
    domty  
       Oct 27, 2015
    一个不太彻底的解决办法。
    我都是把类似上传后的服务器路径存在 session 里的, key 按实际业务确定。
    保存表单数据的时候把它从 session 中取出来,保存成功后从 session 清空。
    每次往 session 存之前先检查原来的该 key 对应的 value 是否有值,有就取出路径删掉。
    About     Help     Advertise     Blog     API     FAQ     Solana     1075 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 17:59 PVG 01:59 LAX 10:59 JFK 13:59
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86