Загрузить фото с php без перезагрузки - PullRequest
2 голосов
/ 30 июля 2010

Что я хочу

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

Поэтому, когда я нажимаю upload_photo, изображение загружается и link добавляется к textarea.

Я хочу чистый HTML, Javascript | AJAX и PHP.


Что у меня есть


<form action"index.php" method="post" enctype="multipart/form-data">
    <textarea id="textarea" name="text"></textarea>
        <input type="file" name="photo" />
        <input type="submit" name="upload_photo"/>
    <input type="submit" name="post"/>
</form>

Примеры сайтов:


http://www.friendfeed.com - страница donне загружается при загрузке файлов

Чего я не хочу


Пожалуйста, избегайте публикации решений с jQuery или любой библиотекой, API.

Ответы [ 2 ]

2 голосов
/ 30 июля 2010

Это может действительно быть сделано с AJAX.Я не думаю, что использование AJAX представляет собой большую угрозу безопасности, чем отправка ванильной HTML-формы;вам все равно придется проверять все пользовательские данные на стороне сервера.Вот простой пример:

http://www.webtoolkit.info/ajax-file-upload.html

1 голос
/ 30 июля 2010

Это просто.Поместите iframe, дайте ему имя, например «MyIframe».Затем в форму добавьте атрибут TARGET со значением «MyIframe» и действие - сценарий, который выполняет загрузку (например, takeupload.php). На главной странице определите функцию Javascript, которая выполняет то, что вам нужно после загрузкиГотово, которое будет вызываться с параметрами, со страницы, сгенерированной takeupload.php.

в takeupload.php, загрузите изображение, затем отправьте в качестве вывода обычную пустую HTML-страницу, которая выполнит скрипт, которыйвызовет метод, описанный выше, с набором необходимых вам параметров (имя изображения, путь, ошибка или простой HTML-код для вставки куда-либо и т. д.).

используйте его так:

<script type="text/javascript">
parent.YourJSMethod(parameters);
</script>

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

Это довольно просто.Нет необходимости в jQuery, нет AJAX, нет ничего, просто очень простой код Javascript и немного HTML.

...