文件存放读取所遇到的问题,请大家帮忙
文件为PDF格式,少则30 40页,多则400 500页,份数为20W左右
个人没有什么好的办法将文件存入数据库
现在初步决定弄一台文件服务器,在客服端指定文件,复制到服务器相应的文件夹
然后在数据库建立索引,存放文件路径
由于没有做过这方面得东西,不知道在做的过程中有没有什么难点需要注意
还有不知道大家对这类问题有没有好的解决方法
请大家多多指教,先行谢过。
[解决办法]
客户端先导到XML里面,然后传到服务器,再通过数据转换到数据库里面,建立索引。
DELPHI 技术大全,明日科技出的书里面有一个例子的。你可以查一下资料。
[解决办法]
将文件复制到服务器资料夹,透过管理路径和文件名亦可
将文件存入SQL SERVER<2008 FileStream建议>,能更灵活控制安全性
若以每个文件10M计,预计3T空间,呵呵,仔细规划好
[解决办法]
主要看你的考虑方面了,如果都存入数据库的话,会导致容量骤增,可能会影响对数据库操作的效率
村委路径也是一种不错的方法,所存在的问题就是避免文件被随意删除及改变
[解决办法]
用SQL SERVER 2008 FileStream
[解决办法]
两种方式:
1、传送文件到服务器保存,数据库保存数据库的存储路径
2、文件直接保存到数据库的大数据image字段。
[解决办法]
导入前压缩,导出后解压
[解决办法]
可以采取文件服务器和数据库服务器分开的方法。
文件服务器可以采用常规的FTP,而数据库服务器可以存放ftp用户密码做权限,以及用FTP地址和Ftp文件相对路径做文件检索,这样可以分担文件服务器的存储压力
[解决办法]
如果采用FTP那么什么文件服务器上的物理驱动盘没关系,你只要了解FTP指令就可以了,其他的交给FTP服务器来完成,如创建虚拟目录映射等
[解决办法]
注意 运行帐号 有没有访问共享目录的权限
[解决办法]
路径可以用ini文件保存,类似:
[pdffile]
fileserver = 192.168.0.1
filepath = \temporary\grs
在代码中将ini文件的相关信息读出来赋给一个Tstring。
这样会灵活点,。如果把路径存到数据库,fileserver的地址改了,难道你要把所有的字段值都改一次?
[解决办法]
整个目录复制?copyfile好像不支持
直接调用一个外部命令:cmd /c copy ... ...
[解决办法]
没复制成功应该是你共享出来的目录不是完全共享的,只有读权限,没有写权限
[解决办法]
function File_Action(fFROM, fTO: string; Action: integer): boolean;
//对文件进行操作
var
FData: TShFileOpStruct;
begin
fillchar(FData, sizeof(TShFileOpStruct), 0);
Fdata.pFrom := PChar(fFrom + #0#0);
//设立数据源路径和文件、目录名,支(?,*通配符)
fdata.pTo := PChar(fTo + #0#0); //设立目标路径
case Action of
0: fdata.wFunc := FO_COPY; //copy
1: fdata.wFunc := FO_MOVE; //move
2: fdata.wFunc := FO_DELETE; //delete
3: fdata.wFunc := FO_RENAME; //rename
else
fdata.wFunc := FO_COPY;
end;
fData.fFlags := FOF_ALLOWUNDO; //设定操作选 项
fData.fAnyOperationsAborted := false;
fData.hNameMappings := nil;
case Action of
0: fData.lpszProgressTitle := '复制文件'; //copy
1: fData.lpszProgressTitle := '移动文件'; //move
2: fData.lpszProgressTitle := '删除文件'; //delete
3: fData.lpszProgressTitle := '重命名'; //rename
end;
result := ShFileOperation(FData) = 0;
end;
[解决办法]
如果采用共享文件夹可以采用映射网络驱动器,就相当于本地文件了
但是共享文件夹我曾经遇见过一种情况网络正常,但是不知道为什么有时候访问共享文件夹居然会超时30秒以上,这个问题我一直困扰了我很久,起先还以为程序有问题,结果是共享问题,因此后来一直放弃使用这种方式,因此我还是建议使用FTP,至少可以在网络正常情况下稳定传输,而且可以后台执行甚至断点续传