testování uploadu, jak do requestu vložit posílané soubory?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
jrwm
Člen | 14
+
0
-

Ahoj, potřebuji otestovat uploadování obrázků, ale nevím, jak mám ten obrázek přidat do požadavku.

Nette\Application\Request ( string $name, string $method, array $params, array $post = array(), array $files = array(), array $flags = array() )

Request má jako parametr array $files, ale nedokázal jsem vyzjistit, co vlastně do toho pole $files mám vložit. Budu rád, když mi někdo poradíte. Googluju jak divej, ale nevím, jak na to.

enumag
Člen | 2118
+
0
-

Zkus upnout soubor a dumpni si to pole.

jrwm
Člen | 14
+
0
-

Jo, to jsem zkoušel.

$file = array('name' => 'test.jpg',
			'type' => 'image/jpg',
			'size' => 53103,
			'tmp_name' => '/tmp/test.jpg',
			'error' => 0);
		$files[] = $file;

		$request = new Nette\Application\Request('Settings', 'POST', $requestData, $requestData, $files);

V obslužném skriptu

$files = $this->getHttpRequest()->getFiles();
		dump($files);
		die();

A nic, tak nevim

llook
Člen | 407
+
0
-

Je to pole objektů Nette\Http\FileUpload, např.:

$lowLevelFileInfo = array(
	'name' => 'soubor.gif',
	'type' => 'image/gif',
	'size' => 12345,
	'tmp_name' => '/tmp/blablabla',
	'error' => UPLOAD_ERR_OK,
);
$file = new FileUpload($lowLevelFileInfo);

$request->files = array(
	'picture' => $file,
);

Nebo pokud je to multiple file input, tak hodnotami jsou pole těch objektů.

jrwm
Člen | 14
+
0
-

Báječné, moc děkuji ;)

jrwm
Člen | 14
+
0
-

Jenže ono se v takto uměle vytvořených requestech nenaplní pole $_FILES (ani $_POST) a pak mi skript selže na move_uploaded_files() :(