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);
 }
示例#2
0
 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>');
 }