Vlastní stand-alone script pro multiple upload
- D4rk
- Člen | 6
Zdravím,
používám Nette 2.0.10, PHP 5.3 a snažím se vytvořit script, který bude
zpracovávat následující formulář
<form name="uploads" method="post" action="php/upload-page.php" enctype="multipart/form-data">
<input name="nazev" placeholder="Název alba">
<input name="filesToUpload[]" id="filesToUpload" type="file" multiple="" onchange="makeFileList();" />
<input type=submit>
</form>
(script který se volá on change pouze vypisuje vybrané soubory)
Soubory které se nahrávají na server chci uložit ve tří kvalitách do různých složek. Zatím jsem vytvořil toto
<?php
require_once "nette.min.php";
use Nette\Image;
use Nette\DI\Container;
use Nette\Http;
use Nette\Diagnostics\Debugger;
Debugger::enable(); // aktivujeme Laděnku
$configurator = new Nette\Config\Configurator;
$configurator->setTempDirectory(__DIR__ . '/temp');
$container = $configurator->createContainer();
$httpRequest = $container->httpRequest;
$files = $httpRequest->getFiles();
foreach($files["filesToUpload"] as $file)
{
if($file->isImage())
{
$name = $file->getSanitizedName();
//$file->move(__DIR__'../fotky/novinka/'.$name);
$image = $file->toImage();
$mini = $image;
$web = $image;
$web->resize(723, null);
//$web->send();
$mini->resize(100,100);
$web->save(__DIR__'../fotky/novinka/'.$web_name);
//$web_name = str_replace(".","_web.",$name);
//ECHO __DIR__'../fotky/B5A_2011/'.$web_name;
// $web->save(__DIR__'../fotky/B5A_2011'.$web_name);
}else
echo "hello";
}
?>
To co zatím mám by mělo ukládat nahrané obrázky do složky novinka
v kvalitě 723× dopočítaný rozměr. Bohužel se neděje nic (laděnka nic
nehlásí, nic se nikam neuloží). Vím však, že se nahrané obrázky do
scriptu dostanou, když použiju send, vrátí se mi do prohlížeče zmenšený
obrázek. Výpis $files[„filesToUpload“] skutečně obsahuje všechny
vybrané obrázky.
Budu rád za všechny rady či připomínky.
- Filip Procházka
- Moderator | 4668
Doporučil bych místo vlastního scriptu vytvořit signál a zpracovávat soubory v něm.