2014-10-28 3 views
1

Im, предоставляющий параметр предварительного просмотра файла, где пользователь прикрепляет файл, а затем нажимает на предварительный просмотр. Загружает файл и выводит предварительный просмотр PHPExcel.Прикрепить файл к форме при переадресации

С этой страницы я хочу включить кнопку, в которой говорится о продолжении. Затем будет продолжена фактическая загрузка строки и базы данных.

Однако, как только я перенаправляюсь на страницу предварительного просмотра, я понятия не имею, как прикрепить этот файл к моей скрытой форме для повторной отправки.

Я могу приложить все старые входные значения .... так ... Но как я могу прикрепить файл ??? (Используя лезвие в Laravel для шаблонам)

/* These work and are correct*/ 
<input type="text" id="xlsColumnOrder" name="xlsColumnOrder" value="{{$input['xlsColumnOrder']}}"/> 
<input type="text" name="researcher" value="{{$input['researcher']}}" />  
<input type="text" name="leadcity" value="{{$input['leadcity']}}" /> 
<input size="16" id="survey_date" name="survey_date" type="text" value="{{$input['survey_date']}}" /> 
/* This doesnt attach anything to the file input 
/* Need to attach the previously uploaded file here for resubmission */         
<input class="file" id="csvfile" name="csvfile" type="file" value="{{$file['csvfile']['tmp_name']}}" /> 
+1

вы не можете сделать это. значения '' могут быть выбраны только пользователями, а не программно заданы. – developerwjk

+0

Так есть еще одно решение? Как я могу повторно загрузить этот файл? Я знаю, что могу хранить его на сервере и ссылаться на него так, но у меня нет такого выбора, так как я использую appfog, и у них нет постоянного хранилища файлов. – KyleK

+1

Его функция безопасности, которая позволяет вам скрытно выбирать, чтобы украсть любой файл из пользователя, которого вы хотите. Загрузка файла требует взаимодействия с пользователем. И даже если вы можете это сделать, действительно ли вы хотите загрузить файл на свой сервер несколько раз с машины клиента? Это пустая трата. Вам нужно переосмыслить дизайн. – developerwjk

ответ

1

Вы не можете автоматически повторно пользовательские файлы, так что я хотел бы сделать это так:

  • Когда пользователь отправляет форму, если какой-либо файл при условии сохранения файла в какой-нибудь каталог (вы относитесь к нему как к временному) и сохраняете имя файла/имена для сеанса и показываете пользовательский просмотр файла
  • Когда он нажимает кнопку «Продолжить» - вы можете делать с другими данными все, что угодно (например, сохранить их в базе данных или показать как скрытые в другая форма), и вы все еще загрузили имя файла в сеансе, поэтому, если хотите, вы можете еще раз показать предварительный просмотр файла
  • Если вы хотите, наконец, сохранить все пользовательские данные, вы переместите файл/файлы пользователя в конечный каталог (и, возможно, переименуйте его) и сохраните все данные с именем файла (ы) (возможно, в базе данных).

В дополнение вы должны иметь какой-то хрон, который удаляет данные из временного каталога, созданного очень, например, более чем на 3 часа

+0

Да, это именно то, что я делал. Единственная причина, по которой я пытался избежать этого, заключалась в том, что AppFog не имеет постоянного хранилища файлов, поэтому я не смог сохранить файл в любом месте. Но я просто использовал Amazon S3. Храните файл временно, просматривайте его, и когда он действительно отправляет его, он автоматически удаляет файл после. Его золото сейчас :) – KyleK

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