X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> type file
asbury
asbury
Topic Starter сообщение 9.4.2009, 0:14; Ответить: asbury
Сообщение #1


<input type="file">
там есть выбор картинок и тд))

как прописать - путь куда добавлять фотку?:)
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 9.4.2009, 0:58; Ответить: Webmaster_hb
Сообщение #2


файл сам по себе не добавится
html передает этот файл на сервер, где вы должны написать отдельный скрипт. который примет этот файл, обработает и разместить в нужное место на сервере
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
asbury
asbury
Topic Starter сообщение 9.4.2009, 3:47; Ответить: asbury
Сообщение #3


Ну это я знаю и понимаю, но это как вобще, через экшн? И примеры скриптов - если не трудно ссылку или хотябы как они называются, пожалуйста?:))

предположим у меня лежит сайт и скрипт на сервере "serv1" могу я в скрипте сделать так, чтобы фаил добавлялся на сервер, который не потдерживает пхп?:)) То есть пхп обработчик лежит там где он потдерживается, а вот само действие...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 9.4.2009, 10:29; Ответить: Webmaster_hb
Сообщение #4


(asbury @ 9.4.2009, 06:47) *
Ну это я знаю и понимаю, но это как вобще, через экшн? И примеры скриптов - если не трудно ссылку или хотябы как они называются, пожалуйста?:))


Загрузка файлов методом POST

PHP способен принимать файл загружаемый при помощи любого браузера, поддерживающего стандарт RFC-1867 (в том числе Netscape Navigator 3 и выше, Microsoft Internet Explorer 3 с патчем от Microsoft или более поздние версии без патча). Это дает возможность загружать как текстовые, так и бинарные файлы. Вместе с PHP-аутентификацией и функциями для работы с файловой системой вы получаете полный контроль над тем, кому разрешено загружать файлы, и над тем, что делать с файлом после его загрузки.

Также следует заметить, что PHP поддерживает загрузку файлов методом PUT, который используется в клиентах Netscape Composer и W3C Amaya. Для получения более детальной документации обратитесь к разделу поддержка метода PUT
Страница для загрузки файлов может быть реализована при помощи специальной формы, которая выглядит примерно так:


Форма для загрузки файлов

[php]<form enctype="multipart/form-data" action="_URL_" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
Отправить этот файл: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>[/php]

В приведенном выше примере "_URL_" необходимо заменить ссылкой на PHP-скрипт. Скрытое поле MAX_FILE_SIZE(значение необходимо указывать в байтах) должно предшествовать полю для выбора файла, и его значение является максимально допустимым размером принимаемого файла. Также следует убедиться, что в атрибутах формы вы указали enctype="multipart/form-data", в противном случае загрузка файлов на сервер выполняться не будет.

Содержимое массива $_FILES для нашего примера приведено ниже. Обратите внимание, что здесь предполагается использование имени userfile для поля выбора файла, как и в приведенном выше примере. На самом деле имя поля может быть любым.
$_FILES['userfile']['name'] Оригинальное имя файла на компьютере клиента.
$_FILES['userfile']['type'] Mime-тип файла, в случае, если браузер предоставил такую информацию. Пример: "image/gif".
$_FILES['userfile']['size'] Размер в байтах принятого файла.
$_FILES['userfile']['tmp_name'] Временное имя, с которым принятый файл был сохранен на сервере.
$_FILES['userfile']['error'] Код ошибки, которая может возникнуть при загрузке файла. Ключ ['error'] был добавлен в PHP 4.2.0
Проверка загружаемых на сервер файлов Для получения более детальной информации вы можете ознакомится с описанием функций is_uploaded_file() и move_uploaded_file(). Следующий пример принимает и обрабатывает загруженный при помощи формы файл.
[php]<?php
// В PHP 4.1.0 и более ранних версиях следует использовать $HTTP_POST_FILES
// вместо $_FILES.

$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
print "File is valid, and was successfully uploaded. ";
print "Here's some more debugging info:\n";
print_r($_FILES);
} else {
print "Possible file upload attack! Here's some debugging info:\n";
print "Possible file upload attack! Дополнительная отладочная информация:\n";
print_r($_FILES);
}
print "</pre>";

?>[/php]
PHP-скрипт, принимающий загруженный файл, должен реализовывать логику, необходимую для определения дальнейших действий над принятым файлом. Например, вы можете проверить переменную $_FILES['userfile']['size'], чтобы отсечь слишком большие или слишком маленькие файлы. Также вы можете использовать переменную $_FILES['userfile']['type'] для исключения файлов, которые не удовлетворяют критерию касательно типа файла. Начиная с PHP 4.2.0 вы можете использовать $_FILES['userfile']['error'] и разъяснение сообщений об ошибках при реализации вашей логики. Независимо от того, какую модель поведения вы выбрали, вы должны удалить файл из временной папки или переместить его в другую директорию.
В случае, если при отправке формы файл выбран не был, PHP установит переменную $_FILES['userfile']['size'] значением 0, а переменную $_FILES['userfile']['tmp_name'] - пустой строкой. none.
По окончанию работы скрипта, в случае, если принятый файл не был переименован, или перемещен он будет автоматически удален из временной папки.
(asbury @ 9.4.2009, 06:47) *
предположим у меня лежит сайт и скрипт на сервере "serv1" могу я в скрипте сделать так, чтобы фаил добавлялся на сервер, который не потдерживает пхп?:)) То есть пхп обработчик лежит там где он потдерживается, а вот само действие...


нет
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
asbury
asbury
Topic Starter сообщение 9.4.2009, 16:15; Ответить: asbury
Сообщение #5


Спасибо огромное за исчерпывающий ответ!!! Супер!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
asbury
asbury
Topic Starter сообщение 5.11.2009, 22:01; Ответить: asbury
Сообщение #6


[PHP]
<?php include('../blocks/admmenu.php');
if (!isset($_POST['submit']))
{ echo "
<form action='' method='POST' enctype='multipart/form-data' >
Меню: <select name='menu'>
<option value='1'>Спорт/Туристы</option>
<option value='2'>Максискутеры</option>
<option value='3'>Mопеды</option>
<option value='4'>Эндуро/кросс</option>
<option value='5'>Дорожные</option>
<option value='6'>Чопперы</option>
</select><br />
Производитель: <input type='text' name='podmenu'><br />
Название: <input type='text' name='name'><br />
Объем двигателя: <input type='text' name='obem'><br />
Класс: <input type='text' name='class'><br />
Пробег: <input type='text' name='probeg'><br />
Год: <input type='text' name='god'><br />
Цена: <input type='text' name='cena'> руб.<br />
<input type='hidden' name='MAX_FILE_SIZE' value='30000000' />
Картинка I: <input type='file' name='img1'><br />
Картинка II: <input type='file' name='img2'><br />
Картинка III: <input type='file' name='img3'><br />
Картинка IV: <input type='file' name='img4'><br />
<input type='submit' name='submit' value='Добавить запись'>
</form>"; }
if (isset($_POST['submit']))
{
if (isset($_POST['menu'])){$menu = $_POST['menu']; if ($menu==''){ unset($menu); }}
if (isset($_POST['podmenu'])){$podmenu = $_POST['podmenu']; if ($podmenu==''){ unset($podmenu); }}
if (isset($_POST['name'])){$name = $_POST['name']; if ($name==''){ unset($name); }}
if (isset($_POST['obem'])){$obem = $_POST['obem']; if ($obem==''){ unset($obem); }}
if (isset($_POST['class'])){$class = $_POST['class']; if ($class==''){ unset($class); }}
if (isset($_POST['probeg'])){$probeg = $_POST['probeg']; if ($probeg==''){ unset($probeg); }}
if (isset($_POST['menu'])){$menu = $_POST['god']; if ($god==''){ unset($god); }}
if (isset($_POST['cena'])){$cena = $_POST['cena']; if ($cena==''){ unset($cena); }}
if (isset($_POST['img1'])){$img1 = $_POST['img1']; if ($img1==''){ unset($img1); }}
if (isset($_POST['img2'])){$img2 = $_POST['img2']; if ($img2==''){ unset($img2); }}
if (isset($_POST['img3'])){$img3 = $_POST['img3']; if ($img3==''){ unset($img3); }}
if (isset($_POST['img4'])){$img4 = $_POST['img4']; if ($img4==''){ unset($img4); }}


$uploaddir = 'texnika/';
$uploadfile = $uploaddir . basename($_FILES['img1']['name']);
print "<pre>";
if (move_uploaded_file($_FILES['img1']['tmp_name'], $uploadfile)) {
print "File is valid, and was successfully uploaded. ";
print "Here's some more debugging info:\n";
print_r($_FILES);
} else {
print "Possible file upload attack! Here's some debugging info:\n";
print "Possible file upload attack! Дополнительная отладочная информация:\n";
print_r($_FILES);
}
print "</pre>";
}
?>
[/PHP]

И вот что выводит:
Warning: move_uploaded_file(texnika/Acrobat.com.exe): failed to open stream: No such file or directory in w:\home\localhost\www\moto\admin\add1.php on line 53



Warning: move_uploaded_file(): Unable to move '/tmp\phpC4.tmp' to 'texnika/Acrobat.com.exe' in w:\home\localhost\www\moto\admin\add1.php on line 53

Possible file upload attack! Here's some debugging info:
Possible file upload attack! Дополнительная отладочная информация:
Array
(
[img1] => Array
(
[name] => Acrobat.com.exe
[type] => application/x-msdownload
[tmp_name] => /tmp\phpC4.tmp
[error] => 0
[size] => 95232
)

[img2] => Array
(
[name] =>
[type] =>
[tmp_name] =>
[error] => 4
[size] => 0
)

[img3] => Array
(
[name] =>
[type] =>
[tmp_name] =>
[error] => 4
[size] => 0
)

[img4] => Array
(
[name] =>
[type] =>
[tmp_name] =>
[error] => 4
[size] => 0
)

)


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) автоматическая активация нужных <input type="radio">
1 FALKOR 3676 19.5.2016, 17:18
автор: -Valeron-
Открытая тема (нет новых ответов) Продаю сайт Top-file.ru
28 Staff92 8237 24.2.2010, 16:46
автор: Monah
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыНовый File Share сервис! 20$ за 1000 загрузок!
95 БаSтеR 20535 28.1.2009, 19:27
автор: edder


 



RSS Текстовая версия Сейчас: 26.4.2024, 6:35
Дизайн