Fotky se občas neuloží po uploadu

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

Ahoj, mám form ve kterém potřebuji aby mi uživatel nahrál fotku auta a já jí následně uložím, přidám záznam o souboru do db a připojím tento záznam ke správnému autu, ale občas se mi stane, že se fotka neuloží. Nevíte někdo proč.

osekal jsem to a zobrazil jen podstatné věci

nette 2.4 a doctrine

díky za rady

$form->addUpload('picture', $this->translate('ui.registrationRegCar.picture'))
			->setRequired()
			->setOption('description', $this->translate('ui.registrationRegCar.pictureDescription'))
			->addRule(Form::IMAGE, $this->translate('ui.registrationRegCar.pictureImage'))
			->addRule(Form::MAX_FILE_SIZE, $this->translate('ui.registrationRegCar.pictureSize'), 1024 * 1024 /* v bytech */);
		$form->onSuccess[] = function (Form $form, $values) use ($onSuccess, $regId) {
			if ($values->picture == NULL || !$values->picture->isOk() || !$values->picture->isImage()) {
				$form->addError('Car picture invalid');
				return;
			}
			try {
				$this->registrationFacade->addCarToRegistration($regId, $values);
			} catch (CarLimitException $e) {
				$form->addError($this->translate('ui.messages.carlimitReached'));

				return;
			}
			$onSuccess();
		};
	public function addCarToRegistration($id, $data)
	{
		$car = new Car();

		if ($data->picture->isOk()) {
			$fileName = $data->picture->getSanitizedName();
			$fileNameExt = pathinfo($fileName, PATHINFO_EXTENSION);
			$fileName = md5($id . 'registration' . $data->name) . '.' . $fileNameExt;
			$filePath = UPLOAD_DIR . '/cars/' . $fileName;
			$data->picture->move($filePath);

			$fileUid = md5($id . 'registration');
			$imageData = [
				'name' => $fileName,
				'path' => $filePath,
				'uid' => $fileUid,
			];
			if ($data->picture->isImage()) {
				$imageData['image'] = TRUE;
			}
			$imageData = ArrayHash::from($imageData);
			$car->picture = $this->fileFacade->createFile($imageData);
		}

		$this->em->persist($car);
		$this->em->flush();
	}
Zuben45
Člen | 268
+
0
-

neuloží – do databáze nebo na disk ?

jarda256
Člen | 130
+
0
-

@Zuben45 jako zaznam ma imageId NULL a ani na disku ten obrázek není…tzn neuložil se ani do db záznam a ani obrázek na disk

h4kuna
Backer | 740
+
0
-

Pro jednoduché ukládání souborů jsem si udělal tento upload mohu se na to spolehnout, že mi uloží soubor na disk nebo vyletí exception. Tím je vyřešená jedná část, ta s uložením informací do db už je na tobě.