Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: UPLOAD .
 
 автор: dima2207   (12.04.2007 в 17:18)   письмо автору
 
 

Люди , почему не работает аплоад приведенный вот сдесь :http://www.softtime.ru/scripts/upload.php

выдает ошибку , хотя права на папку установленны 666.
Warning: copy(http://s.com/java/temp/0.txt) [function.copy]: failed to open stream: HTTP wrapper does not support writeable connections. in /home/sitefakt/public_html/java/up.php on line 17
Ошибка загрузки файла

   
 
 автор: Trianon   (12.04.2007 в 17:30)   письмо автору
 
   для: dima2207   (12.04.2007 в 17:18)
 

А куда Вы этот файл пытаетесь загрузить?
Впечатление такое, что во втором аргументе написано http:.....

   
 
 автор: dima2207   (12.04.2007 в 18:05)   письмо автору
 
   для: Trianon   (12.04.2007 в 17:30)
 


<html>
<head>
  <title>Результат загрузки файла</title>
</head>
<body>
<?php
   
if($_FILES["filename"]["size"] > 1024*3*1024)
   {
     echo (
"Размер файла превышает три мегабайта");
     exit;
   }
   if(
copy($_FILES["filename"]["tmp_name"],
     
"./java/temp/".$_FILES["filename"]["name"]))
   {
     echo(
"Файл успешно загружен <br>");
     echo(
"Характеристики файла: <br>");
     echo(
"Имя файла: ");
     echo(
$_FILES["filename"]["name"]);
     echo(
"<br>Размер файла: ");
     echo(
$_FILES["filename"]["size"]);
     echo(
"<br>Каталог для загрузки: ");
     echo(
$_FILES["filename"]["tmp_name"]);
     echo(
"<br>Тип файла: ");
     echo(
$_FILES["filename"]["type"]);
   } else {
      echo(
"Ошибка загрузки файла");
   }
   
?>

</body>
</html>




Я и так пробовал :
if(copy($_FILES["filename"]["tmp_name"],
"mysite.com/java/temp/".$_FILES["filename"]["name"]))

И так :
if(copy($_FILES["filename"]["tmp_name"],
"http://mysite.com/java/temp/".$_FILES["filename"]["name"]))

И все бесполезно !!!

   
 
 автор: Trianon   (12.04.2007 в 18:14)   письмо автору
 
   для: dima2207   (12.04.2007 в 18:05)
 

>И все бесполезно !!!
Это не диагностика.

А для копирования загруженных файлов применяется функция move_uploaded_file()

   
 
 автор: dima2207   (12.04.2007 в 19:05)   письмо автору
 
   для: Trianon   (12.04.2007 в 18:14)
 

Ну хорошо , с содержимым переменной $_FILES Я разобрался ,
[filename] => Array
(
[name] => 1b.txt
[type] => text/plain
[tmp_name] => /tmp/phpI1Wtik
[error] => 0
[size] => 1307
)

вот только мне не понятно две вещи , почему tmp_name=>/tmp/php....... хотя я задавал совсем другой адрес для временного хранения файла , и второй вопрос : где -же собственно находится сам файл переданный на сервер ?

   
 
 автор: Trianon   (12.04.2007 в 19:21)   письмо автору
 
   для: dima2207   (12.04.2007 в 19:05)
 

> [filename] => Array
> [tmp_name] => /tmp/phpI1Wtik
> [error] => 0
>вот только мне не понятно две вещи , почему tmp_name=>/tmp/php.......
>хотя я задавал совсем другой адрес для временного хранения файла ,

Какой адрес, и каким образом Вы его задавали?

> и второй вопрос : где -же собственно находится сам файл переданный на сервер ?

В файле /tmp/phpI1Wtik

   
 
 автор: dima2207   (12.04.2007 в 21:52)   письмо автору
 
   для: Trianon   (12.04.2007 в 19:21)
 

Я вообще-то расчитывал что дериктория временного файла находится в переменной
$uploaddir = '/java/temp/';


<?php
// В PHP 4.1.0 и более ранних версиях следует использовать $HTTP_POST_FILES
// вместо $_FILES.

$uploaddir '/java/temp/';
$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>";

?>

   
 
 автор: Trianon   (12.04.2007 в 21:55)   письмо автору
 
   для: dima2207   (12.04.2007 в 21:52)
 

Допустим.
Допустим, Вы даже переложили туда файл.
Вот только с чего Вы решили, что в массиве $_FILES данные поменяются?
Они останутся исходными.

Странный подход. А если два разных пользователя загрузят два файла с одним и тем же именем?

   
 
 автор: dima2207   (12.04.2007 в 22:13)   письмо автору
 
   для: Trianon   (12.04.2007 в 21:55)
 

Да но там нет ни одного файла , а вообще-то у меня будет с начала в бд заносится имя файла с уникальным ид , а потом уже добавлятся к имени файла номер ид !!!
да но я не могу понять откуда мне взять загруженный файл , что-бы сохранить его в /java/up/ ?
потомучто после работы приведенного выше скрипта , в директории ничеего не появляется !
почему ???

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования