Я работаю над проектом symfony для загрузки тезисов докладов. Я не новичок в php, и я помню, что у меня была похожая проблема на обычном php. Но я не совсем помню, как я это решил. Я пытаюсь загрузить PDF, но при отправке сервер (symfony build in server) прекращает принимать запросы, и мой единственный вариант - остановить сервер. Firefox показывает, что было передано ~ 700B (варьируется ???), но сервер не дал ответа. Однако через некоторое время я попробовал форму в Google Chrome и был очень удивлен, когда она отлично работала. При выключении symfony сервер иногда показывает сообщение об ошибке (есть немецкие части):
shut down, bye! with server callback Mar 30 17:57:25 |eRRORe VER issue with server callback
1merrore"unable to fetch the response from the backend: read tcp 127.0.0.1:53834->127.0.0.1:53811: wsarecv:
Eine vorhandene Verbndene Verbindung werbindung w Verbindung wurde vom ng wurde vom
RemS9m="unable to fetch the res S9m="unable to fetch the response from the backend: read tcp
127.0.0.1:53834->127.0.0.1:53811: wsarecv: Eine vorhandene Verbndene
Verbindung werbindung w Verbindung wurde vom ng wurde vom Remindung w Verbindung wurde vom RMar 30
17:57:25 |Mar 30 17:57:25 |S1mERRORE VERET (502)
Возможно, потому что загрузка все равно работает, но в chrome загрузка заняла менее секунды ( 10KB) и не было проблем.
Мой код для формы Symfony:
public const paperFileFormID = "paperFile";
public const signatureFileFormID = "signatureFile";
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add(self::paperFileFormID, FileType::class, [
'label' => "Upload Paper (PDF File)",
'mapped' => false,
'constraints' =>
[
new File([
'maxSize' => '30000k',
'mimeTypes' => [
'application/pdf',
'application/x-pdf'
],
'mimeTypesMessage' => 'please upload a valid PDF document'
])
],
])->add(self::signatureFileFormID, FileType::class, [
'label' => "Upload Paper (PDF File)",
'mapped' => false,
'constraints' =>
[
new File([
'maxSize' => '2048k',
'mimeTypes' => [
'application/pdf',
'application/x-pdf'
],
'mimeTypesMessage' => 'please upload a valid PDF document'
])
],
])
->add('title', TextType::class, [
'attr' => [
'placeholder' => "title"
]
])
->add('coauthorEmails', TextType::class, [
'label' => 'coauthor email adresses',
'required' => false
])
->add('upload', SubmitType::class);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => PaperAbstract::class
]);
}
И контроллер :
public function uploadAbstract(Request $request, SluggerInterface $slugger){
$paperAbstract = new PaperAbstract();
$form = $this->createForm(AbstractUploadType::class, $paperAbstract);
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()){
$paperAbstractData = $form->get(AbstractUploadType::paperFileFormID)->getData();
$signatureData = $form->get(AbstractUploadType::signatureFileFormID)->getData();
$originalAbstractFileName = pathinfo($paperAbstractData->getOriginalName(), PATHINFO_FILENAME);
$originalSignatureFileName = pathinfo($signatureData->getOriginalName(),PATHINFO_FILENAME);
$safeFilename = $slugger->slug($originalAbstractFileName);
$newFilename = $safeFilename.'-'.uniqid().'.'.$paperAbstractData->guessExtension();
$safeFilename = $slugger->slug($originalSignatureFileName);
$newFilename = $safeFilename.'-'.uniqid().'.'.$signatureData->guessExtension();
$signatureData->move(
$this->getParameter('paperDirectory'),
$newFilename
);
return new Response("test");
}
return $this->render('/full_template/abstract_upload.html.twig', ['form' => $form->createView()]);
}
Это еще не готово, только для целей тестирования. Я работаю над windows и использую исполняемый файл xampp php для встроенного сервера.
У кого-нибудь есть идеи, как это исправить или в чем проблема? Я на самом деле на идеи ...