2011-04-13 47 views
1

远程客户端将上传图像(也可能是某些指定格式文本的指令文件)到“投递文件夹”。一旦上传完成,我们需要开始处理这些图像。如果每几秒钟脚本自动开始处理文件夹中的任何文件(这些文件可以在处理完成后移出文件夹),这将是一个简单但有缺陷的解决方案;但是当试图处理仅部分转移的大图像时会出现问题。如何确定“投递文件夹”中的文件是否完全传输

我可以使用哪些技巧来确保文件在处理之前完全上传?

我自己的一些想法: 脚本可以检查文件的有效性;即部分jpeg会导致错误,并且您可以在脚本中响应该错误,但这会占用相当多的CPU资源。有些文件最后有特殊标记,但我不能指望这一点,我不确定我将处理的格式。

我听说过“文件句柄”,但还没有真正弄清楚它们是什么以及如何判断特定文件上是否存在“文件句柄”的基本知识。基本上FTP守护进程(实际上,我在Windows上,所以“服务”)将保持文件上的“处理”,而它将被上传,并且您将不知道处理该文件。这些只是我的一些想法,但我不确定他们是否会工作,或者是否有更好或更可接受的方法来解决这个问题。

回答

1

如果您有一个服务器端脚本上传系统(PHP,ASP,JSP,无论什么),您可以指示脚本调用另一个脚本来处理这些文件,或创建一个标志文件,指示上传完成,像这样。

如果您的服务器是基于Linux的,则可以使用lsof来检查文件是否打开。由于您的ftp/script/cgi将在上传完成后关闭文件,因此lsof将不会在列表中显示该文件。

如果您的服务器是基于Windows的,则可以使用Process Explorer列出打开的文件。

0

用户通过什么方法上传图像?

相关问题