Закачка файлов через Http
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="300000" />
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
upload.php:
<?php
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n";
echo "Displaying contents\n";
readfile($_FILES['userfile']['tmp_name']);
} else {
echo "Possible file upload attack: ";
echo "filename '". $_FILES['userfile']['tmp_name'] . "'.";
}
?>
Господа web-Программеры, подскажите, как скажем на PHP сделать закачку на сервер большого объема данных (ну конечно не такого уж и большого-пара килобайт) через протокол HTTP.
Через форму. Методом пост.
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="300000" />
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
upload.php:
<?php
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n";
echo "Displaying contents\n";
readfile($_FILES['userfile']['tmp_name']);
} else {
echo "Possible file upload attack: ";
echo "filename '". $_FILES['userfile']['tmp_name'] . "'.";
}
?>
В приведенном примере файл скидывается во временную папку на сервер, а как указать конкретное имя файла на сервере? И можно ли сделать код проще
В приведенном примере файл скидывается во временную папку на сервер, а как указать конкретное имя файла на сервере? И можно ли сделать код проще
1. Файл всегда (вроде так) скидывается во временную папку. И его имя можно получить из массива $_FILES['userfile']['tmp_name'] затем его можно передвинуть (move) в любую другую папку (если есть на это права) и там он уже сохранится нормально (т.е. НЕ временно) и имя ему можно задать произвольно.
Для этого нужна функция: move_uploaded_file
Если что читай ТУТ!
2. Можно! Но форму я бы сильно не упрощал. А сам пхп можно выкинуть все echo они не несут особой задачи, кроме информативной. Можно расписать всё на большее или меньшее количество строчек, т.е. можно всё делать пошагово или же как можно больше за один шаг.
В итоге, вывести закаченный файл на экран (или записать его в переменную и в б.д.) можно так:
<?php
if (is_uploaded_file($_FILES['userfile']['tmp_name'])
) {
readfile($_FILES['userfile']['tmp_name']);
}
?>
Куда уж проще?
1. Файл всегда (вроде так) скидывается во временную папку. И его имя можно получить из массива $_FILES['userfile']['tmp_name'] затем его можно передвинуть (move) в любую другую папку (если есть на это права) и там он уже сохранится нормально (т.е. НЕ временно) и имя ему можно задать произвольно.
Для этого нужна функция: move_uploaded_file
Если что читай ТУТ!
2. Можно! Но форму я бы сильно не упрощал. А сам пхп можно выкинуть все echo они не несут особой задачи, кроме информативной. Можно расписать всё на большее или меньшее количество строчек, т.е. можно всё делать пошагово или же как можно больше за один шаг.
В итоге, вывести закаченный файл на экран (или записать его в переменную и в б.д.) можно так:
<?php
if (is_uploaded_file($_FILES['userfile']['tmp_name'])
) {
readfile($_FILES['userfile']['tmp_name']);
}
?>
Куда уж проще?
Хрошо, просто все дело в том, что мне не через браузер надо закачивать, а через мою клиентскую программу. Проще говоря, надо передать массив данных серверу, чтобы тот записал его в БД. Желательно было бы делать это не с помощью фйлов, а просто передавать/принимать данные.
Хрошо, просто все дело в том, что мне не через браузер надо закачивать, а через мою клиентскую программу. Проще говоря, надо передать массив данных серверу, чтобы тот записал его в БД. Желательно было бы делать это не с помощью фйлов, а просто передавать/принимать данные.
А раньше сказать? БД позволяет принимать удалённое подключение?
А раньше сказать? БД позволяет принимать удалённое подключение?
Нет конечно, тогдабы у меня не было вопросов. Только через php
Нет конечно, тогдабы у меня не было вопросов. Только через php
Тогда постом шли. Если возникнут вопросы ищи на этом сайте статью, там сказанно как это делаеться. POST по умолчанию принимает 2 метра, обычно расширяют, но как я понял тебе и это избыточно.