Jump to content
  • 0

php скрипт загрузки файла на хостинг


zhdanovsv
 Share

Question

Добрый день. В интернете нашел скрипт загрузки файла с сайта в папку хостинга. Если отдельно ее запускать /public_html/upload.php то все работает - сначала показывает форму где выбираем файл, жмем на кнопку Загрузить - выходит отдельная страница о статусе загрузки..все норм. Но мне нужно этот test.php вывести в содержимое страницы сайта content.php. В index.php подключаю content.php и sidebar.php через include, настраиваю в sidebar.php ссылку

1
<div id="upload"><a href="upload.php" target="_blank" onclick="ajax();return false">Форма загрузки</a></div>

, в index.php дописываю обработку нажатия на пункт меню:

1
2
3
4
5
6
7
8
9
$( "#upload" ).click(function(e) {
      e.preventDefault();
      $.ajax({
            url: 'upload.php',
            success: function(data) {
                $('#content').html(data);
            }
        });
    });
- при клике страница upload.php грузится, выбираю файл, жму на кнопку - происходит обновление страницы и все, указанная папка на хостинге пустая.
Содержимое upload.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
 
$path = realpath(getcwd() . '/../files/input/');
 
if(!file_exists($path))
die("<b>Пожалуйста, создайте папку <font color=red>".$path."</font> и <a href=?>повторите попытку загрузить файл</a>.</b>");
if(empty($_FILES['UserFile']['tmp_name']))
echo"<form method=post enctype=multipart/form-data>
Выберите файл: <input type=file name=UserFile>
<input type=submit value=Отправить>
</form>";
elseif(!is_uploaded_file($_FILES['UserFile']['tmp_name']))
die("<b><font color=red>Файл не был загружен! Попробуйте <a href=?>повторить попытку</a>!</font></b>");
else{
if(@!copy($_FILES['UserFile']['tmp_name'],$path.chr(47).$_FILES['UserFile']['name']))
die("<b><font color=red>Файл не был загружен! Попробуйте <a href=?>повторить попытку</a>!</font></b>");
else
echo "<center><b>Файл \"<font color=red>".$_FILES['UserFile']['name']."\"</font> успешно загружён на сервер!</font></b></center>"."<hr>".
"Тип файла: <b>".$_FILES['UserFile']['type']."</b>".
"Размер файла: <b>".round($_FILES['UserFile']['size']/1024,2)." кб.</b>".
"<hr><center><a href=?>Загрузить ещё один файл!</a></center>";
}
?>
1
2
<div id="content">
</div>

Подскажите почему так происходит? Что в коде нужно поправить для адекватной его работы? Что нужно добавить чтобы статус сообщения об успешной/неуспешной загрузки выходили в этом же content.php без перезагрузки страницы? - какой ajax код прописать для этого случая? Заранее спасибо

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

предполагаю что
upload.php - является и формой и принимающим скриптом, т.к. вы данный скрипт подгружаете на страницу через скрипт, а потом отправляете файл на ту же самую страницу на которой уже нет данного скрипта, то файл ни как не обрабатывается
попробуйте скрипт не подгружать через js а показывать, пусть он всегда будет на данной странице, но просто скрытым

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy