Dominik Kajzar

Dominik Kajzar T24 Technical
Consultant /
Frontend Developer

Temat: Update plików

dopiero zaczynam z symfony wiec pytanie może być trywialne, nie mniej szukałem w internecie i nie znalazłem.
Wiec mój problem wygląda następująco:
Chce stworzyć galerie do której można up datować zdjęcia( nazwa pliku jest zapisana w bazie danych) zapisywanie robię tak:
class PhotoForm extends BasePhotoForm {

public function save($con = null) {
if (file_exists($this->getObject()->getFile())) {
unlink($this->getObject()->getFile());
}

$file = $this->getValue('file');
$filename = sha1($file->getOriginalName()) . $file->getExtension($file->getOriginalExtension());
$file->save(sfConfig::get('sf_upload_dir') . '/' . $filename);

return parent::save($con);
}
}
moje pytanie brzmi czy można(albo jak można) zrobić żeby updatowało do katalogu /web/image/galleries
Tomasz Wójtowicz

Tomasz Wójtowicz Programista Ruby on
Rails

Temat: Update plików

mówisz o wersji 1.4 tak?

Jak tak to w dokumentacji mozna cos takiego znaleść:

// lib/form/doctrine/ProductPhotoForm.class.php

public function configure()
{
$this->useFields(array('filename', 'caption'));

$this->setWidget('filename', new sfWidgetFormInputFile());
$this->setValidator('filename', new sfValidatorFile(array(
'mime_types' => 'web_images',
'path' => sfConfig::get('sf_upload_dir').'/products',
)));
}


Jest to kod z dokumantacji http://www.symfony-project.org/more-with-symfony/1_4/e...

i sobie zmieniasz np na:

'path' => sfConfig::get('sf_upload_dir').'/galleries'
Tomasz Wójtowicz edytował(a) ten post dnia 24.02.11 o godzinie 13:59
Dominik Kajzar

Dominik Kajzar T24 Technical
Consultant /
Frontend Developer

Temat: Update plików

tak wersja 1.4 :)
Dzięki za informacje:)
http://www.symfony-project.org/forms/1_4/en/11-Doctrine-Integration zrobiłem jednak według tego, i zastanawiam się dlaczego mi wyszły dzikie nazwy pliku(zbór losowych chyba liter)Dominik Kajzar edytował(a) ten post dnia 24.02.11 o godzinie 16:32
Tomasz Wójtowicz

Tomasz Wójtowicz Programista Ruby on
Rails

Temat: Update plików

chodzi o to że zostaje zmieniona nazwa pliku na jakąś losową?

bo generalnie na tym to polega :P Każdy plik zmienia nazwę na losową, tak żeby jak ktoś wrzucał plik np. bmw.jpg to żeby nie podmieniło już istniejącego. A tak to nazwa pliku składa się z losowych liter, która zostaje zapisana do bazy danych i wszystko jest cacy :)
Dominik Kajzar

Dominik Kajzar T24 Technical
Consultant /
Frontend Developer

Temat: Update plików

a co w momecie gdy np chce miec nazywane pliki powiedzmy id w Tytuł?
Dominik Kajzar

Dominik Kajzar T24 Technical
Consultant /
Frontend Developer

Temat: Update plików

juz wiem:)jak to zrobić
Adam W.

Adam W. senior php
developer, Symfony

Temat: Update plików

Dominik Kajzar:
a co w momecie gdy np chce miec nazywane pliki powiedzmy id w Tytuł?

w klasie sfValidatorFile podajesz parametr validated_file_class - czyli tworzysz swoją klasę z metodą generateFilename($ile_znakow = 0). w niej możesz wygenerować nową nazwę pliku. tylko ciężko jest przekazywać jakieś inne parametry do tej metody (jak np. ID pliku).
jak coś sensownego wykombinujesz podziel się efektami:)

konto usunięte

Temat: Update plików

Adam W.:
Dominik Kajzar:
a co w momecie gdy np chce miec nazywane pliki powiedzmy id w Tytuł?

w klasie sfValidatorFile podajesz parametr validated_file_class - czyli tworzysz swoją klasę z metodą generateFilename($ile_znakow = 0). w niej możesz wygenerować nową nazwę pliku. tylko ciężko jest przekazywać jakieś inne parametry do tej metody (jak np. ID pliku).
jak coś sensownego wykombinujesz podziel się efektami:)

Ja rozwiązałem to w trochę inny sposób, trudno mi powiedzieć czy elegancki. Ale działa;) i można w dowolny sposób nazywać te pliki. W sumie musiałem w taki sposób zrobić, bo w momencie wrzucania zdjęcia przez użytkownika, miały tworzyć się 4 kopie pliku - każda w innej rozdzielczości i w innym folderze;)


public function save($con = null)
{
$files = sfContext::getInstance()->getRequest()->getFiles($this->getName());
$this->values['file'] = 'jakas_fajna_nazwa.jpg';
move_uploaded_file($files['file']['tmp_name'], sfConfig::get('sf_upload_dir') . "/" . $this->values['file']);
parent::save($con);
}
Michał Majewski edytował(a) ten post dnia 28.02.11 o godzinie 13:55



Wyślij zaproszenie do