(转)上传文件思路

news/2024/7/4 12:59:30

一看就是用了AJAX_UPLOAD,点图的时候就上传了吧.
如果是这样的接下来你会需要:
创建临时目录
AJAX_UPLOAD至临时目录
FORM提交时将临时目录文件mv至正式目录
写个定时任务清理临时目录
临时目录有很多方法,量不多的话日期目录最简单.任务清理前一天的任务


临时目录的文件其实可以异步删除 、空间到怎样的值 ,
就是说不需要依赖用户是否提交表单这个行为。
整个服务里需要有那么一个线程或者进程管理这个目录
这个线程需要有2块功能
定时侦测目录的文件数/目录空间
给一个阀值,当目录文件数,按文件的创建时间排序删除最老的文档,删除数量可以给定一个百分比给个建议
这个涉及到异步文件上传的功能设计。
思路:
先把文件上传道服务器,并保存一条相关数据到数据库中,状态标识为-(未启用)并设置过期时间,同时把文件上传的url反馈给客户端,实现回显
当用户提交了表单之后,就把先前上传的文件的状态标识更新为 ----已经生效
如果用户不提交表单,则文件到达了过期时间可以利用java程序去删过期的文件(未生效 且 过期 )


http://www.niftyadmin.cn/n/4235270.html

相关文章

Databing()的使用

我们先来看一个简单的例子&#xff1a; <% Page Language"C#" %> <% Import Namespace"System.Data" %> <Script Language"C#" Runat"Server"> public void Page_Load(Object src,EventArgs e) { //首先建立一…

【转】动态树

动态树是一种“超级数据结构”&#xff0c;它能够维护一个由若干有根树组成的森林&#xff0c;在对数的时间复杂度内支持&#xff1a; 1.查询一个点的父亲 2.查询一个点所在的树的根 3.修改某个节点的权 4.向从某个节点到它所在的树的根的路径上的所有的节点的权增加一个数 5.查…

(转)java之用volatile和不用volatile的区别

在当前的Java内存模型下&#xff0c;线程可以把变量保存在本地内存&#xff08;比如机器的寄存器&#xff09;中&#xff0c;而不是直接在主存中进行读写。这就可能造成一个线程在主存中修改了一个变量的值&#xff0c;而另外一个线程还继续使用它在寄存器中的变量值的拷贝&…

hyperv虚拟机上虚拟机的cpu个数问题

虚拟机支持的内存容量最多达64G&#xff0c;虚拟机支持的vcpu个数最多为4个&#xff08;如果你虚拟机是WIN2008最多可以4个&#xff0c;如果是win2003最多2个&#xff08;这里其实是表示微软支持的个数&#xff0c;你也可以通过别的技术手段可以支持4个&#xff09;&#xff0c…

(转)为什么volatile不能保证原子性而Atomic可以?

在上篇《非阻塞同步算法与CAS(Compare and Swap)无锁算法》中讲到在Java中long赋值不是原子操作&#xff0c;因为先写32位&#xff0c;再写后32位&#xff0c;分两步操作&#xff0c;而AtomicLong赋值是原子操作&#xff0c;为什么&#xff1f;为什么volatile能替代简单的锁&am…

杂文语录积累(二)

1.不要说什么不想谈&#xff0c;没感觉就是硬道理&#xff1b; 2.没有放不下的事&#xff0c;只有放不下的人&#xff1b; 3.我们不可能在一起一辈子&#xff0c;但我们可以把在一起变的久一点。 4.一直记得一句话&#xff1a;打电话的时候记得微笑&#xff0c;对方听得见。可是…

(转)ConcurrentHashMap分段与锁的学习总结

现阶段的学习策略是理解和实践这些知识点&#xff0c;并没有深入分析其原理&#xff0c;但确实精读了许多关于这个主题基础性的资料让我很受益&#xff08;见参考资料&#xff09;。 哈希表基础 1.哈希表是基于数组的数据结构 2.通过对关键字的哈希运算实现元素的快速定位 3.哈…