是否可以使用PHP上传两个不同的文件并使用新文件名压缩存档?以下是我创建的表格。
<form action="upload.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<h1>Submit here</h1>
<p>
<label for="cat">category</label>
<select id="cat" name="cat" value="">Category</option>
<option value="csr2050">Cns</option>
<option value="npp2023">npp</option>
</select>
</p><p>
<label for="fsheet">fsheet</label>
<input name="fsheet" type="file" id="fsheet" />
</p><p>
<label for="report">Report</label>
<input name="report" type="file" id="report" />
</p><p>
<input type="submit" name="Submit" id="Submit" value="upload" />
</form>
这里我想要的是,如何编写upload.php,可以创建所选两个文件的zip存档文件,并将其重命名为选定的类别值,然后将其上传到/ upload文件夹?
答案 0 :(得分:0)
在PHP中也可以轻松完成。但是,这里有3个功能
每个都是不同的解决方案,我的代码可能需要根据您的变量进行更改, 您可以看到zip实用程序链接以获取详细信息。您还可以在Stackoverflow中获取每个任务的帖子数量,例如Zip文件
上传多个文件
上传强>
<?
$file_name1 = $_FILES['fsheet']['name'];
$file_name1 = stripslashes($file_name1);
$file_name1 = str_replace("'","",$file_name1);
$copy = copy($_FILES['fsheet']['tmp_name'],$file_name1);
// prompt if successfully copied
if($copy){
echo "$file_name1 | uploaded sucessfully!<br>";
}else{
echo "$file_name1 | could not be uploaded!<br>";
}
$file_name2 = $_FILES['report']['name'];
$file_name2 = stripslashes($file_name2);
$file_name2 = str_replace("'","",$file_name2);
$copy = copy($_FILES['report']['tmp_name'],$file_name2);
// prompt if successfully copied
if($copy){
echo "$file_name2 | uploaded sucessfully!<br>";
}else{
echo "$file_name2 | could not be uploaded!<br>";
}
?>
** Zip ** 首先从下载zip实用程序类 http://www.phpclasses.org/browse/file/9524.html
<?php
$directoryToZip="secret"; //
$outputDir = $_POST['rootfolder'];
//$outputDir="$folder"; //Replace "/" with the name of the desired output directory.
$zipName="backup.zip";
include_once("zip/CreateZipFile.inc.php");
$createZipFile=new CreateZipFile;
/*
// Code to Zip a single file
$createZipFile->addDirectory($outputDir);
$fileContents=file_get_contents($fileToZip);
$createZipFile->addFile($fileContents, $outputDir.$fileToZip);
*/
//Code toZip a directory and all its files/subdirectories
$createZipFile->zipDirectory($directoryToZip,$outputDir);
$fd=fopen($zipName, "wb");
$out=fwrite($fd,$createZipFile->getZippedfile());
fclose($fd);
$msg = "Files backup successfully";
//$createZipFile->forceDownload($zipName);
$trgtName = date("F-Y-h-i-s"). ".zip";
copy ($zipName,$outputDir."/".$trgtName);
@unlink($zipName);
?>