private function saveFile($src, $file) { $tempfilepath = sfConfig::get("dw_tempFilePath", "/tmp/temp_file"); $dest = fopen($tempfilepath, 'a'); if (stream_copy_to_stream($src, $dest)) { $this->multimedia_data['uri'] = sha1(substr($file, strrpos($file, '/', strlen($file))) . rand()); $this->multimedia_data['title'] = substr($file, strrpos($file, '/') + 1, strlen($file)); $this->multimedia_data['mime_type'] = mime_content_type('/tmp/temp_file'); $this->multimedia_data['type'] = "." . array_search($this->multimedia_data['mime_type'], Multimedia::$allowed_mime_type); if (!Multimedia::CheckMimeType($this->multimedia_data['mime_type'])) { throw new Exception('mauvais mime_type'); } rename($tempfilepath, sfConfig::get('sf_upload_dir') . "/multimedia/temp/" . $this->multimedia_data['uri']); } else { return false; } fclose($dest); }
public function executeInsertFile(sfWebRequest $request) { $form = new RelatedFileForm(); $form->bind(null, $request->getFiles($request->getParameter('formname'))); $file = $form->getValue('filenames'); if ($form->isValid()) { if (!Multimedia::CheckMimeType($file->getType())) { return $this->renderText('<script type="text/javascript">parent.displayFileError(\'This type of file is not allowed(' . $file->getType() . ')\')</script>'); } // first save the file $filename = sha1($file->getOriginalName() . rand()); while (file_exists(sfConfig::get('sf_upload_dir') . '/multimedia/temp/' . $filename)) { $filename = sha1($file->getOriginalName() . rand()); } $extension = $file->getExtension($file->getOriginalExtension()); $file->save(sfConfig::get('sf_upload_dir') . '/multimedia/temp/' . $filename); if ($file->isSaved()) { $file_info = array('title' => $file->getOriginalName(), 'filename' => $file->getOriginalName(), 'mime_type' => $file->getType(), 'type' => $extension, 'uri' => $filename, 'referenced_relation' => $request->getParameter('table'), 'creation_date' => date('Y-m-d')); $this->getUser()->setAttribute($filename, $file_info); } return $this->renderText('<script type="text/javascript">parent.getFileInfo(\'' . $filename . '\')</script>'); } return $this->renderText('<script type="text/javascript">parent.displayFileError(\'' . $form->getErrorSchema()->current() . '\')</script>'); }