ОБСУЖДЕНИЕ

Помогите с кодом пж

10 сообщений1 просмотровОткрыта
#1
Ниже вот мой уплоад файл, загружает картинку только.. что то я не могу сделать чтоб и файл загружал какойто(( в определенную папку, помогите пж
<?
include_once '../../sys/inc/start.php';
include_once '../../sys/inc/compress.php';
include_once '../../sys/inc/sess.php';
include_once '../../sys/inc/home.php';
include_once '../../sys/inc/settings.php';
include_once '../../sys/inc/db_connect.php';
include_once '../../sys/inc/ipua.php';
include_once '../../sys/inc/fnc.php';
include_once '../../sys/inc/user.php';
$set['title']='Добавить Картинку';
include_once '../../sys/inc/thead.php';
only_reg();
title();
aut();

$dirs=mysql_fetch_array(mysql_query("SELECT * FROM `torrent_dir` WHERE `id`='".intval($_GET['nid'])."';"));
if (isset($_GET['add']) && isset($_FILES['file'])){
if ($imgc=@imagecreatefromstring(file_get_contents($_FILES['file']['tmp_name'])))
{
$name=my_esc($name);
$img_x=imagesx($imgc);
$img_y=imagesy($imgc);

if ($img_x>2000 || $img_y>2000)$err='Размер изображения превышает ограничения в 2000*2000';
$opis=NULL;
if (isset($_POST['opis']))
$opis=stripslashes(htmlspecialchars(esc($_POST['opis'])));
if (!isset($err)){
// Изобретение года :-D
$s=$_SERVER['HTTP_HOST'];$fname=time().''.$p[1];
$sait="$s"."_"."$fname";
// Конец :-D
mysql_query("INSERT INTO `torrent_file` (`id_dir`, `name`, `ras`, `type`, `user_id`, `time`, `opis`) values ('$dirs[id]', '$sait', 'jpg', 'image/jpeg', '$user[id]', '$time', '$opis')");
$id_foto=mysql_insert_id();


if ($img_x==$img_y)
{
$dstW=48;
$dstH=48;
}elseif ($img_x>$img_y)
{
$prop=$img_x/$img_y;
$dstW=48;
$dstH=ceil($dstW/$prop);
}else{
$prop=$img_y/$img_x;
$dstH=48;
$dstW=ceil($dstH/$prop);
}

$screen=imagecreatetruecolor($dstW, $dstH);
imagecopyresampled($screen, $imgc, 0, 0, 0, 0, $dstW, $dstH, $img_x, $img_y);
imagejpeg($screen,H."modules/torrent/kartinki/48/$id_foto.jpg",90);
@chmod(H."modules/torrent/kartinki/48/$id_foto.jpg",0777);
imagedestroy($screen);


if ($img_x==$img_y)
{
$dstW=200; // ширина
$dstH=200; // высота
}
elseif ($img_x>$img_y)
{
$prop=$img_x/$img_y;
$dstW=200;
$dstH=ceil($dstW/$prop);
}else{
$prop=$img_y/$img_x;
$dstH=200;
$dstW=ceil($dstH/$prop);
}

$screen=imagecreatetruecolor($dstW, $dstH);
imagecopyresampled($screen, $imgc, 0, 0, 0, 0, $dstW, $dstH, $img_x, $img_y);
$screen=img_copyright($screen); // наложение копирайта
imagejpeg($screen,H."modules/torrent/kartinki/200/$id_foto.jpg",90);
@chmod(H."modules/torrent/kartinki/200/$id_foto.jpg",0777);
imagedestroy($screen);


$screen=imagecreatetruecolor($dstW, $dstH);
imagecopyresampled($screen, $imgc, 0, 0, 0, 0, $dstW, $dstH, $img_x, $img_y);
imagedestroy($screen);
$imgc=img_copyright($imgc); // наложение копирайта
imagejpeg($imgc,H."modules/torrent/kartinki/foto/$id_foto.jpg",90);
@chmod(H."modules/torrent/kartinki/foto/$id_foto.jpg",0777);
}else{
$imgc=img_copyright($imgc); // наложение копирайта
imagejpeg($imgc,H."modules/torrent/kartinki/foto/$id_foto.jpg",90);
@chmod(H."modules/torrent/kartinki/foto/$id_foto.jpg",0777);
}
imagedestroy($imgc);
//
header("Location: dir.php?nid=$dirs[id]");
//
}
else $err='Выбранный Вами формат изображения не поддерживается';
}

err();
###########################
echo "<form enctype='multipart/form-data' action='?nid=$dirs[id]&amp;add' method='post'>";
echo "Файл:<br />\n";
echo "<input name='file' type='file' accept='image/*,image/jpeg' /><br />\n";

echo '<form action="/modules/torrent" method="post" enctype="multipart/form-data">
<input type="file" name="file_name">';

echo "Описание:<br />
<textarea name='opis'></textarea><br />";
echo "<input class='submit' type='submit' value='Выгрузить' />\n";
echo "/ <a href='dir.php?nid=$dirs[id]'>Отмена</a><br />\n";
echo "</form>";

include_once '../../sys/inc/tfoot.php';
?>
#2
у тебя только под картинки заточено, копирайт на файлы так не нанесешь , нужно смотреть что грузится и делать проверку по формату файла если к примеру gif формат наносить копирайт если zip не наносить как пример:
PHP

$allowed_extensions = array("jpg", "jpeg", "gif", "png", "zip", "rar");// разрешено к загрузке
$allowed_file = array("zip", "rar");// на что не наносим копирайт
$file_name = $_FILES['file']['name'];//название
$file_size = $_FILES['file']['size'];//размер
$file_tmp_name = $_FILES['file']['tmp_name'];//имя закачиваемого файла
$file_error = $_FILES['file']['error'];
$file_giz = getimagesize($ava_tmp_name);
$file_type = strtolower(end(explode(".", $file_name)));
if (!is_uploaded_file($ava_tmp_name)) {
$err .='вы не вбрали файл';
}
elseif (!(in_array($file_type, $allowed_extensions) or in_array(strtolower($file_type), $allowed_extensions)) and $file_name) {
$err .='разрешены форматы:  '.implode($allowed_extensions, ', ').'.';
}
elseif ($file_size > 110000) {
$err .='размер файла превышает 100 кб';
}
elseif ($file_error) {
$err .='файл не был загружен';
}
elseif (!(in_array($file_type, $allowed_file) or in_array(strtolower($file_type), $allowed_file)) and $file_name) {

//здесь загрузка простого файла


}else{


//здесь загрузка - проверка  картинки, копирайт и так далее
}

#3
OnOff, Тоесть, если вставить этот код, то я смогу выгружать файл уже тех форматов которые я укажу? если да, тогда как сделать чтоб файлы загружались в определенную папку?
#4
PHP

$dir = 'file/';//папка на нее 0777 права
$COPI= 'ivonline.ru';//например адрес сайта
$name_f = md5(time());//что бы названия файлов не совпадали
$name_f = substr($name_f, 0, 8);
$put = $dir.$name_f.'_'.$COPI.'.'.$file_type;//общий путь можно например в базу записать

if (@copy($file_tmp_name, $put))
{
///здесь можно и запись @mysql_query("INSERT INTO..... в базу создать для вывода списка файлов и т.д или @mysql_query("UPDATE.... заменить уже существующую запись
$err .='файл успешно загружен';
}else{
$err .='файл не загружен';
}

#5
OnOff, Спс, как сделать саму форму файла, чисто для выгрузки через данные критерии?
#6
CrazyDemoN, ну форма проще простого:

перед $allowed_extensions первый мой пост ставим

if(isset($_POST['button']))
{
после


//здесь загрузка - проверка картинки, копирайт и так далее
}

//еще один

}



BASH


//вывод ошибок

if(!empty($err)){echo ''.$err.'';}


echo '
<form action="./"  enctype="multipart/form-data"  method="post">
<b>Новый файл:</b><br/>
<input type="file" name="file"/><br/>
<input type="submit" name="button" value="Загрузить"/>';



учти это все как пример реализации чуток рук и он станет нормальным.
#7
OnOff, Спасибо , щас попробую что то сделать)
#8
if(isset($_POST['button']))
{
$allowed_extensions = array("jpg", "jpeg", "gif", "png", "zip", "rar");// разрешено к загрузке
$allowed_file = array("zip", "rar");// на что не наносим копирайт
$file_name = $_FILES['file']['name'];//название
$file_size = $_FILES['file']['size'];//размер
$file_tmp_name = $_FILES['file']['tmp_name'];//имя закачиваемого файла
$file_error = $_FILES['file']['error'];
$file_giz = getimagesize($ava_tmp_name);
$file_type = strtolower(end(explode(".", $file_name)));
if (!is_uploaded_file($ava_tmp_name)) {
$err .='вы не вбрали файл';
}
elseif (!(in_array($file_type, $allowed_extensions) or in_array(strtolower($file_type), $allowed_extensions)) and $file_name) {
$err .='разрешены форматы: '.implode($allowed_extensions, ', ').'.';
}
elseif ($file_size > 110000) {
$err .='размер файла превышает 100 кб';
}
elseif ($file_error) {
$err .='файл не был загружен';
}
elseif (!(in_array($file_type, $allowed_file) or in_array(strtolower($file_type), $allowed_file)) and $file_name) {

//здесь загрузка простого файла


}else{


//здесь загрузка - проверка картинки, копирайт и так далее
}
$dir = 'file/';//папка на нее 0777 права
$COPI= 'ivonline.ru';//например адрес сайта
$name_f = md5(time());//что бы названия файлов не совпадали
$name_f = substr($name_f, 0, 8);
$put = $dir.$name_f.'_'.$COPI.'.'.$file_type;//общий путь можно например в базу записать

if (@copy($file_tmp_name, $put))
{
///здесь можно и запись @mysql_query("INSERT INTO..... в базу создать для вывода списка файлов и т.д или @mysql_query("UPDATE.... заменить уже существующую запись
$err .='файл успешно загружен';
}else{
$err .='файл не загружен';
}
}


echo '
<form action="./" enctype="multipart/form-data" method="post">
<b>Новый файл:</b><br/>
<input type="file" name="file"/><br/>
<input type="submit" name="button" value="Загрузить"/>';



Тоесть, мне нужно вот так сделать?
#9
помошите пж. не получаетмя
#10
кто нить