проблема с закачкой рисунков на сервер

c-st

Новичок
проблема с закачкой рисунков на сервер

Есть база, необходимо загружать в нее картинки, рисунки должны лежать на сервере, названия к ним хранятся в базе. Проблема в том, что не происходит закачки на сервер. и в базу данных не сохраняются названия рисунков.
PHP:
<form name="hot" action="" method="POST" enctype="multipart/form-data">
Название:<br />
 <input name="name" />   <br />
 Текст:<br />
 <textarea name="text" cols="20" rows="5"></textarea>    <br />
 Изображение:<br />
 <input name="img" type="file" />   <br />
 Фото1:<br />
<input type="submit" name="sub" value="Добавить" />
</form>	
				
 $sql="INSERT into hot (name,text,img) VALUES ('".$_POST['name']."','".$_POST['text']."','_img/".$_POST['img'].'")";

$img=$_POST['img'];
copy($img, $ima="../_img/$img")or die("Dont Copy");
Проблема в том что сервер просто выдает "Dont Copy". В чем может быть проблема?
 

Voldar

Новичок
Не $_POST а $_FILES. А вообще этот код выброси, и читай http://php.rinet.ru/manual/ru/features.file-upload.php
 

Dreamer76

Through thorns
Это файл с именем upload.php.

<form enctype="multipart/form-data" action="view.php?up=1" method=post>
<input type="Hidden" name="MAX_FILE_SIZE" value="1000000">
>>
1 фото <input type="file" name="prod[]"><br>
2 фото <input type="file" name="prod[]"><br>
3 фото <input type="file" name="prod[]"><br>
4 фото <input type="file" name="prod[]"><br>
5 фото <input type="file" name="prod[]"><br><br>

<input type=submit value=Up! >
</form>

Это файл view.php

<?
require_once('random.php');
require_once('mysql.inc');

#это mysql.inc
#<?
#define("MYSQL_DB","dbname");
#define("MYSQL_SOCKET","localhost");
#define("MYSQL_USER","root");
#define("MYSQL_PASSWD","");
#?>


if (!($sock = @mysql_connect(MYSQL_SOCKET, MYSQL_USER, MYSQL_PASSWD)))
die('mysql_connect: Unable to connect to server');
if (!mysql_select_db(MYSQL_DB))
die('mysql_select_db: '.mysql_error($sock));


if ($up == "1") {

foreach ($_FILES["prod"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["prod"]["tmp_name"][$key];


$name = $_FILES["prod"]["name"][$key];

$nam = explode(".", $name);
$nam1 = $nam[1];
$obj1 = new Random;
$nam2 = $obj1->get(12);
$name2 = $nam2.".".$nam1;

move_uploaded_file($tmp_name, "fotos/$name2");


$sql = "INSERT INTO fotos (foto) VALUES ('$name2')";
$result = mysql_query($sql);



}
}
}


?>


Директорию fotos не забудь создать и в базе табличку fotos с полями id и foto.

Файл random.php (заменит названия файлов типа "а_это_я_на_даче.jpg" на "JKh24JHkj.jpg"

----------------------------------


<?
class Random
{
/**
* Set default characters.
*
* @var string
* @access private
*/

var $_vcrs;

/**
* If have number
*
* @var bool
* @access private
*/

var $_vnum;

/**
* If doesn't have number
*
* @var bool
* @access private
*/

var $_vnot;

/**
* Constructor
*
* Set default values
*
* @param string $crs Characters output
* @param bool $num With number
* @param bool $not With not number
*/

function Random($crs = false, $num = false, $not = false){
$this->_vnum = $num;
$this->_vnot = $not;
if(!$crs){
$this->_vcrs = "0123456789".
"abcdefghijklmnopqrstuvwxyz".
"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
}else{
$this->_vcrs = $crs;
if(($num || $not) && !$this->_rec($crs, $num, $not)){
if($num && $not) $err = "number or not number";
elseif($num) $err = "number";
elseif($not) $err = "not number";
else $err = "comparation";
trigger_error("Class Random - String input [ ".$crs." ] doesn't have ".$err, E_USER_ERROR);
}
}
}

/**
* Compare input string
*
* @access private
* @param string $str Characters input
* @param bool $number Have number
* @param bool $notnum Have not number
* @return bool If have number or/and not number
*/

function _rec($str, $number = true, $notnum = true){
$cnt = strlen($str);
$set1 = $set2 = false;
if($number || $notnum){
for($i=0;$i<$cnt;$i++){
if($str{$i} === strval(intval($str{$i}))) $set1 = true;
else $set2 = true;
if($set1 && $set2) break;
}
if($number && $notnum) return ($set1 && $set2);
elseif($number) return $set1;
elseif($notnum) return $set2;
else return true;
}else return true;
}

/**
* Generate random characters
*
* @access public
* @param int $len Length of the string you want generated
* @return string Random characters
*/

function get($len){
if(!(is_int($len) && $len > 0)) return $this->_vcrs;
$ret = "";
$cnt = strlen($this->_vcrs)-1;
for($i=0;$i<$len;$i++) $ret .= $this->_vcrs{rand(0, $cnt)};
if($this->_vnum || $this->_vnot) return $this->_rec($ret, $this->_vnum, $this->_vnot) ? $ret : Random::get($len);
else return $ret;
}

}

?>
 
Сверху