- 论坛徽章:
- 0
|
本帖最后由 gecko_H 于 2012-10-09 23:59 编辑
大家好.
我想使用php上传同一个格式(比如.txt)的文件到服务器的某个一目录(linux系统下的一个目录), 然后使用数据库记录文件的存放地址,文件名等.- <?php
- if ((($_FILES["file"]["type"] == "image/gif")
- || ($_FILES["file"]["type"] == "image/jpeg")
- || ($_FILES["file"]["type"] == "image/pjpeg"))
- && ($_FILES["file"]["size"] < 20000))
- {
- if ($_FILES["file"]["error"] > 0)
- {
- echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
- }
- else
- {
- echo "Upload: " . $_FILES["file"]["name"] . "<br />";
- echo "Type: " . $_FILES["file"]["type"] . "<br />";
- echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
- echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
- if (file_exists("upload/" . $_FILES["file"]["name"]))
- {
- echo $_FILES["file"]["name"] . " already exists. ";
- }
- else
- {
- move_uploaded_file($_FILES["file"]["tmp_name"],
- "upload/" . $_FILES["file"]["name"]);
- echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
- }
- }
- }
- else
- {
- echo "Invalid file";
- }
- ?>
复制代码 问题
1. 上传的目录需要第三方(这里指u,g, o中的others) 有写权限,要不上传不成功. 而我不想文件目录对每个用户开放, 而是指定系统特定用户对目录可写, 其它人不可写. 如何实现?
2. 假如我想上传的多个文件(可能上万个小小文件,同一格式) 打包在一个.tar.gz下, 如何实现上传解压, 并把每个文件名写入数据库?
大家可以指示吗? 如果有现成代码更好(我没写过代码^-^)
第二个问题未解决:
我在网上找到一段代码,这段代码把上传的文档解压到指定的目录. 但如何得到每个文件名及文件内容呢? (通过浏览上传的目录,然后获取文件名及内容?)
我想实现的功能为, 上传后缀为.tar.gz 文档, 读取文档里面的每一个文件名与文件内容, 然后把每个文件名及文件内容保存到数据库, 服务器无需保存上传的tar.gz 文档. 有什么好的办法吗? 能否具体点? 谢谢
<?php
$zipFile= 'file.tar.gz';
$dir = 'myfolder';
$zp = @gzopen($zipFile, "r");
$fp = @fopen("temp.tar", "w");
while(!@gzeof($zp)) {$string = @gzread($zp, 4096); @fwrite($fp, $string, strlen($string));}
@gzclose($zp);
@fclose($fp);
exec('tar xf temp.tar --overwrite --directory='.$dir);
?> |
|