zhdanovsv

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

Recommended Posts

Добрый день. В интернете нашел скрипт загрузки файла с сайта в папку хостинга. Если отдельно ее запускать /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 код прописать для этого случая? Заранее спасибо

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Member Statistics

    46,756
    Total Members
    3,128
    Most Online
    Lackou
    Newest Member
    Lackou
    Joined
  • Recently Browsing   0 members

    No registered users viewing this page.