2013-02-15 4 views
1

У меня есть следующий код, который, как вы можете видеть, я использую для создания нового каталога, а затем разархивируйте файл.file_put_contents в новый каталог

<?php 

function unzip_to_s3() { 

// Set temp path 
$temp_path = 'wp-content/uploads/gravity_forms/1-9e5dc27086c8b2fd2e48678e1f54f98c/2013/02/tmp/'; 

// Get filename from Zip file 
$zip_file = 'archive.zip'; 

// Create full Zip file path 
$zip_file_path = $temp_path.$zip_file; 

// Generate unique name for temp sub_folder for unzipped files 
$temp_unzip_folder = uniqid('temp_TMS_', true); 

// Create full temp sub_folder path 
$temp_unzip_path = $temp_path.$temp_unzip_folder; 

// Make the new temp sub_folder for unzipped files 
if (!mkdir($temp_unzip_path, '0755', true)) { 
    die('Error: Could not create path: '.$temp_unzip_path); 
} 

// Unzip files to temp unzip folder, ignoring anything that is not a .mp3 extension 
$zip = new ZipArchive(); 
$filename = $zip_file_path; 

if ($zip->open($filename)!==TRUE) { 
    exit("cannot open <$filename>\n"); 
} 

for ($i=0; $i<$zip->numFiles;$i++) { 
    $info = $zip->statIndex($i); 
    $file = pathinfo($info['name']); 
    if(strtolower($file['extension']) == "mp3") { 
     file_put_contents(basename($info['name']), $zip->getFromIndex($i)); 
    } else { 
    $zip->deleteIndex($i); 
    } 
} 
$zip->close(); 

} 

unzip_to_s3(); 

?> 

код распакуйте был любезно @TotalWipeOut от одного из моих постов. В настоящее время он распаковывает только mp3-файлы в мой базовый каталог, но я хочу поместить их в свою новую папку.

Я очень новичок в PHP, поэтому я стараюсь изо всех сил, но я не могу понять, как изменить строку file_put_contents(basename($info['name']), $zip->getFromIndex($i));, чтобы заставить ее поместить файлы в мою новую папку?

+1

'file_put_contents ('/ path/to/your/folder /'. $ Info ['name'], ....)' –

+0

и всегда проверять коды возврата из функций. – SparKot

ответ

1

Как Марк Б. упоминается вам необходимо указать путь к каталогу, вы ставите файл в

с использованием кода:.

file_put_contents($temp_unzip_path."/".basename($info['name']), $zip->getFromIndex($i)); 

Я также предлагаю прочитать немного больше о основы PHP.

+0

Спасибо ... я знал, что это будет что-то очень простое, но мое знание «basename» явно нехорошо. Я пытался удалить это и заменить на $ temp_unzip_path. –

Смежные вопросы