Очистка страницы PHP - PullRequest
       48

Очистка страницы PHP

1 голос
/ 08 января 2012

Я работаю с асинхронным инструментом загрузки файлов, который называется plupload.У меня все настроено и работает так, как я хочу на отдельной странице, но у меня есть проблема.Я передаю свой код в систему управления контентом, которая хранит весь постраничный PHP в базе данных - я думаю, он также анализирует фрагменты PHP, чтобы убедиться, что все без ошибок.

Проблема заключается в следующем.Я хотел бы вернуть ответ при успешной загрузке.

На отдельной странице я использую die ('A response') и останавливаю PHP перед разделом HTML.В этом случае я не могу, потому что CMS по-прежнему будет полностью отдавать оставшуюся часть страницы.

Мне нужно отправить форму для себя, потому что я включаю некоторые не-javascript вещи для деградированныхпроверка формы и т. д.

У кого-нибудь есть простое решение?В настоящее время я проверяю любой асинхронный ответ (я имею в виду после сообщения) и называю это «успехом» при завершении загрузки, если вы понимаете, что я имею в виду.Мне это не очень нравится.Я задавался вопросом о том, чтобы принудительно вызвать ошибку сервера при любой неудаче (если смогу).Это было бы особенно плохой практикой?

Ответы [ 3 ]

2 голосов
/ 08 января 2012

Поместите этот код в php файл

<?php
$uploaddir='../uploads/';
$uploadfile=mysql_prep($uploaddir.basename($_FILES['uploadfile']['name']));
if(move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile))
 {
  $name=mysql_prep(($_FILES['uploadfile']['name']));
  $type=mysql_prep(($_FILES['uploadfile']['type']));
  $data=($uploadfile);
  $size= intval($_FILES['uploadfile']['size']);
  #echo $data;
  $branch=mysql_prep($_POST['branch']);
  $sem=mysql_prep($_POST['sem']);
  $query="INSERT INTO upload_file (name,type,data,size,created,branch_id,sem_id) VALUES ('{$name}','{$type}','{$data}','{$size}',NOW(),'{$branch}','{$sem}')";
  $result=mysql_query($query);
  if($result){
      echo"<h2>file successfully uploaded<h2>";
      redirect_to(root."afterlogin/upload.php?spload=0112");
  }
  else{
      echo" the file you insert can't be uploaded";
  }

и включите его в html файл

 <?php if(isset($_GET['spload'])){
 $upload_process="you have successfully uploaded your file. ";
 $upr=1;   

  }else{

    $upr=0;

 }

?>
2 голосов
/ 08 января 2012

Если вы хотите перезаписать файл index.php вашей CMS, это сработает.

  • Переименуйте текущий index.php во что-то другое. Мы скажем «cms.php». Возможно, вы захотите изменить разрешения, чтобы только ваш сервер мог читать с него.
  • Создайте новый файл PHP под названием «index.php». Мы используем пример из include docs (# 6) в руководстве по PHP. Вот (модифицированный) код .
    • примечание: все отступы получаются странными, поэтому я вместо этого вставлю их. не стесняйтесь редактировать

Если в какой-то момент в какой-либо части вашего сайта вы захотите его потерпеть неудачу, вы можете просто вставить реальные данные в $GLOBALS['failContent'], и пользователь никогда не увидит вывод, созданный CMS.


Я не уверен, какой эффект die будет иметь при этом, но я верю, что это не даст нам ничего выводить ... но я не уверен. Кто-нибудь знает?

0 голосов
/ 09 января 2012

Я использую технику, основанную на предложении MySQL выше.

plupload включает в себя событие FileUploaded.

Я генерирую случайное число перед тем, как запустить загрузку и опубликовать его вместе скаждый файл.Как только я закончу перемещать файл на стороне сервера (собственно, вложение электронной почты) - если отправка почты прошла успешно, я пишу небольшой текстовый файл, используя случайное число в качестве имени и «success» или подобное в качестве содержимого,Затем, когда запускается FileUploaded от plupload, я делаю новый асинхронный запрос к небольшому автономному файлу PHP, передавая то же случайное число, и он считывает файл перед тем, как отключить связь.

Еще раз спасибо за помощь.Кажется, работает довольно хорошо.

...