2015-03-10 4 views
0

Я использую PHP/Silex для создания API. Весь мой код работы Зависит одна дорога ... Вот мой index.php моего кода API, где У меня есть проблема:Я пытаюсь загрузить файл, API Silex

require_once __DIR__.'/../vendor/autoload.php'; 
header("Access-Control-Allow-Origin: *"); 
$app = new Silex\Application(); 

use Symfony\Component\HttpFoundation\Request; 
use Symfony\Component\HttpFoundation\ParameterBag; 
use Symfony\Component\HttpFoundation\File\UploadedFile; 


$app->post('/upload', function (Request $request) use ($app) 
     { 
     $file = $request->files->get('upload');                  
     if ($file == NULL) 
     { 
    $send = json_encode(array("status" => "Fail")); 
    return $app->json($send, 500); 
     } 
    else 
     { 
    $file->move(__DIR__.'/../files', $file->getClientOriginalName()); 
    $send = json_encode(array("status" => "Ok")); 
      return $app->json($send, 200); 
     } 
     }); 
$app->run(); 

Когда я закомментировать эту строку $file->move(__DIR__.'/../files', $file->getClientOriginalName()); возвращаемый статус программы, но если Я пропустил эту линию. У меня есть text/html в ответ, где мы можем прочитать,

..Whoops, looks like something went wrong 
FileException in File.php line 134: 
Unable to create the "/var/www/api-picShary/web/../files" directory 
in File.php line 134 
at File->getTargetFile('/var/www/api-picShary/web/../files', 'awesome.png') in UploadedFile.php line 239 
at UploadedFile->move('/var/www/api-picShary/web/../files', 'awesome.png') in index.php line 79 
at {closure}(object(Request)) 
at call_user_func_array(object(Closure), array(object(Request))) in HttpKernel.php line 145 
at HttpKernel->handleRaw(object(Request), '1') in HttpKernel.php line 66 
at HttpKernel->handle(object(Request), '1', true) in Application.php line 543 
at Application->handle(object(Request)) in Application.php line 520 

в APPLICATION-> Run() в index.php линии 86 ...

Я использую форму, чтобы отправить мой файл:

< form action="" method="post" enctype="multipart/form-data"> 
< input type="file" name="upload"> 
< input type="submit"> 
< /form> 
+0

ли вы убедитесь, что пользователь веб-сервер может написать в каталог файлов? Вы также можете попробовать включить режим отладки ('' '$ app ['debug'] = true;' ''), и у вас появится лучшее сообщение об ошибке. – mTorres

+0

@mTorres Да, он может (chmod 777 быть уверенным и chown www-data), а режим отладки включен, но ничего не изменилось ... –

+0

@mTorres edit: я перезапускаю свой сервер и $ app ['debug'] работа –

ответ

2

проблема была php.ini, я должен был изменить upload_max_filesize post_max_size

/etc/php5/cli/conf.d/php.ini

Работа

Конец

+0

Вы должны отметить свой ответ в соответствии с ответом. – nobrandheroes

Смежные вопросы