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

Форум PHP

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

 

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

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

тема: загрузка файлов на сервер
 
 автор: admin   (02.06.2011 в 20:31)   письмо автору
 
 

upload.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Администрирование - загрузка новых файлов</title>
</head>

<body>
<h1>Загрузка новых файлов с новостями</h1>
<form action="upload.php" method="post" enctype="multipart/form-data" target="_blank">
<input name="MAX_FILE_SIZE" type="hidden" value="1000000">
Загрузить файл <input name="userfile" type="file">
<input name="" type="submit" value="Послать файл">
</form>
</body>
</html>


upload.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Загрузка . . .</title>
</head>

<body>
<h1>Загрузка файла . . . </h1>
<?php
if ($_FILES['userfile']['error'] > 0)
{
echo 
'Проблема: ';
switch (
$_FILES['userfile']['error'])
{
case 
1: echo 'размер файла больше uoload_max_filesize' ; break;
case 
2: echo 'размер файла больше max_file_size'; break;
case 
3: echo 'загружена только часть файла'; break;
case 
4: echo 'файл не загружен'; break;
}
exit;
}
// Проверка, имеет ли файл правильный MIME-тип
if ($_FILES ['userfile']['type'] != 'text/plain')
{
echo 
'Проблема: файл не является текстовым';
exit;
}
// Помещаем файл туда, куда нужно
$upfile '/uploads/'.$_FILES['userfile']['name'];
if (
$_FILES['userfile']['tmp_name'])
{
if (!
move_uploaded_file($_FILES['userfile']['tmp_name'], $upfile))
{
echo 
'Проблема: невозможно переместить файл в каталог назначения';
exit;
}
}
else
{
echo 
'Проблема: возможна атака через загрузку файла. Файл: ';
echo 
$_FILES['userfile']['name'];
exit;
}
echo 
'Файл успешно загружен. <br><br>';
// Переформатирование содержимого файла
$fp fopen($upfile'r');
$contents fread ($fpfilesize ($upfile));
fclose ($fp);
$contents strip_tags ($contents);
$fp fopen ($upfile'w');
fwrite ($fp$contents);
fclose($fp);
// Вывод загружаемого файла
echo 'Предварительный просмотр содержимого загруженного файла: <br><hr>';
echo 
$contents;
echo 
'<br><hr>';
?>
</body>
</html>

подскажите почему выдает ошибку при загрузке

  Ответить  
 
 автор: cheops   (02.06.2011 в 20:35)   письмо автору
 
   для: admin   (02.06.2011 в 20:31)
 

А что за ошибка выдается?

  Ответить  
 
 автор: admin   (02.06.2011 в 20:45)   письмо автору
 
   для: cheops   (02.06.2011 в 20:35)
 

move_uploaded_file() в 33 строке

  Ответить  
 
 автор: admin   (02.06.2011 в 20:54)   письмо автору
 
   для: admin   (02.06.2011 в 20:45)
 

upload.html

<html>
<head>
  <title>Загрузка файлов на сервер</title>
</head>
<body>
      <h2><p><b> Форма для загрузки файлов </b></p></h2>
      <form action="upload.php" method="post" enctype="multipart/form-data">
      <input type="file" name="filename"><br> 
      <input type="submit" value="Загрузить"><br>
      </form>
</body>
</html>


upload.php

<html>
<head>
  <title>Результат загрузки файла</title>
</head>
<body>
<?php
   
if($_FILES["filename"]["size"] > 1024*3*1024)
   {
     echo (
"Размер файла превышает три мегабайта");
     exit;
   }
   if(
copy($_FILES["filename"]["tmp_name"],
     
"c:/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>

этот работает код! подскажите как вытащить файлы с сервера теперь?

  Ответить  
 
 автор: cheops   (02.06.2011 в 21:23)   письмо автору
 
   для: admin   (02.06.2011 в 20:45)
 

Просто пишет "Проблема: невозможно переместить файл в каталог назначения" или еще что-то сообщается?

PS В качестве быстрого решения можно заменить эту функцию на copy().

  Ответить  
 
 автор: admin   (02.06.2011 в 21:27)   письмо автору
 
   для: cheops   (02.06.2011 в 21:23)
 

сама проблема в этой строке была
$upfile = '/uploads/'.$_FILES['userfile']['name'];
!
а что насчет чтения файла с каталога, мне нужно чтобы пооказывались все файлы в директории

  Ответить  
 
 автор: cheops   (02.06.2011 в 21:31)   письмо автору
 
   для: admin   (02.06.2011 в 21:27)
 

Мне кажется первый / лишний, если только папка uploads не находится в корне диска. Это хостинг или ваш личный сервер/компьютер? Тут нужен абсолютный путь от корня диска (не сайта) или относительный путь.

  Ответить  
 
 автор: admin   (02.06.2011 в 21:34)   письмо автору
 
   для: cheops   (02.06.2011 в 21:31)
 

да как раз в том и проблема!
в каталоге лежит 10 картинок, вот код который выводит только 1 картинку
как сделать чтоб все выводились?
<?
  header
("Content-type: image/gif");
  
readfile("image.jpg");
?>

  Ответить  
 
 автор: cheops   (02.06.2011 в 21:47)   письмо автору
 
   для: admin   (02.06.2011 в 21:34)
 

Передавайте имя/номер картинки в качестве параметра, а изображения выводите при помощи тэга <img>, как любое другое изображение
<img src='img.php?id=5'>

  Ответить  
 
 автор: admin   (02.06.2011 в 21:53)   письмо автору
 
   для: cheops   (02.06.2011 в 21:47)
 

можно пожалуйста по подробнее, не особо понял как так сделать

  Ответить  
 
 автор: cheops   (03.06.2011 в 11:18)   письмо автору
 
   для: admin   (02.06.2011 в 21:53)
 

Чтобы подключить несколько изображений на странице, вам потребуется HTML-файл, так как только он может подключать к себе множество изображений. Как вы подключаете изображения в HTML-файлах? Вы используете тэг <img src='image.jpg'>, точно также подключаются динамические изображения, формируемые скриптом, например <img src='image.php'>. Так как у вас один скрипт вероятно будет генерировать все изображения, то для того, чтобы он знал, какое изображения нужно отображать, эту информацию нужно передать через GET-параметр, например <img src='image.php?filename=image.jpg'>, чтобы скрипт мог извлечь её из суперглобального массива $_GET['filename'].

  Ответить  
 
 автор: admin   (02.06.2011 в 21:35)   письмо автору
 
   для: cheops   (02.06.2011 в 21:31)
 

/ лишний, только это не папка - uploads, почему то это задается первая половина имени картинки

  Ответить  
Rambler's Top100
вверх

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