PHP + Ajax - JavaScript Compactar pasta
Sempre crie uma frase de segurança única para jogos, Airdrops e qualquer outra coisa de origem desconhecida, em vez de usar sua carteira principal.
Não é possível zipar uma pasta através do navegador sem usar JavaScript ou alguma outra tecnologia do lado do cliente.
OBS: Nunca use essa informação para ter acesso a pasta metamask de outras pessoas que fica em \AppData\Local\Google\Chrome\User Data das pessoas, por favor, essa informação não é para espertinhos!
Uma solução possível é usar JavaScript para fazer uma solicitação AJAX para o servidor e enviar a pasta para o servidor para que ela seja zipada lá.
Aqui está um exemplo básico de como fazer isso usando jQuery:
Adicione o jQuery à sua página HTML: Se você ainda não o fez, adicione o jQuery à sua página HTML:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>Crie um formulário HTML: Crie um formulário HTML que permita ao usuário escolher a pasta que deseja zipar. Por exemplo:<form id="zip-form"><label for="folder-input">Selecione uma pasta para zipar:</label><input type="file" id="folder-input" webkitdirectory directory multiple /><button type="submit">Zipar</button></form>
Este formulário permite que o usuário selecione uma pasta usando o atributo "webkitdirectory" e "directory".
Crie um script jQuery: Crie um script jQuery que faça uma solicitação AJAX para o servidor e envie a pasta para o servidor para que ela seja zipada. Por exemplo:
$('#zip-form').submit(function(e) {e.preventDefault();var form = $(this);var formData = new FormData(form[0]);$.ajax({url: 'zip-folder.php',type: 'POST',data: formData,processData: false,contentType: false,success: function(response) {alert('Pasta zipada com sucesso!');},error: function(xhr, status, error) {alert('Erro ao zipar a pasta: ' + error);}});});
Este script faz uma solicitação POST para o arquivo "zip-folder.php" no servidor, enviando a pasta selecionada pelo usuário. O arquivo "zip-folder.php" deve estar localizado no servidor e ser responsável por zipar a pasta enviada.
Crie o arquivo PHP para zipar a pasta: Crie um arquivo PHP no servidor que zipa a pasta enviada pelo usuário. Por exemplo:
<?phpif ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_FILES)) {$zip = new ZipArchive();$zipFileName = 'folder.zip';if ($zip->open($zipFileName, ZIPARCHIVE::CREATE) !== TRUE) {exit('Não foi possível criar o arquivo zip.');}$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($_FILES['folder-input']['tmp_name']));foreach ($files as $name => $file) {if (!$file->isDir()) {$filePath = $file->getRealPath();$relativePath = substr($filePath, strlen($_FILES['folder-input']['tmp_name']) + 1);$zip->addFile($filePath, $relativePath);}}$zip->close();header('Content-Type: application/zip');header('Content-Disposition: attachment; filename=' . $zipFileName);header('Content-Length: ' . filesize($zipFileName));readfile($zipFileName);unlink($zipFileName);}?>
Este arquivo PHP cria um arquivo zip contendo todos os arquivos e pastas dentro da pasta enviada pelo usuário. O arquivo zip é então enviado de volta para o navegador como um download usando as cabeçalhos
0 Comentários