|
|
|
| Добрый день!
Помогите пожалуста.
Я хотел бы кое что дабавить здесь (в этом скрипте).
Но без вашей помощи не обойдусь.
Как я могу добавить в этой страничке что бы можно было редактировать загруженные файлы.
Типа: поменять, переписать содержимое Описаний Файлов
Или удалить Файл заодно с его содержанием.
Зарание вам благодарен.
<?php
$dossier_cible = "../discography/";
if(isset($_FILES['f'])&&isset($_POST['d']))
{
if(file_exists("$dossier_cible/".basename($_FILES['f']['name']))) die("<html><body><center><h1>Файл с таким же названием уже существует!</h1><br><a href=\"#\" onclick=\"history.go(-1);return(false)\">Назад</a></center></body></html>");
if(!move_uploaded_file($_FILES['f']['tmp_name'], "$dossier_cible/".basename(str_replace(" ", "_", $_FILES['f']['name'])))) die("<center>Произошла ошибка ! Проверте разрешение на $dossier_cible !<br><a href=\"#\" onclick=\"history.go(-1);return(false)\">Retour</a></center>");
$d = substr($_POST['d'],0,60); $fp = fopen("$dossier_cible/d/".basename(str_replace(" ", "_",$_FILES['f']['name'])),"w");
fwrite($fp, stripslashes(htmlentities($d)));
fclose($fp);
}
?>
<?
function redimage($img_src,$dst_w,$dst_h) {
// Lit les dimensions de l'image
$size = GetImageSize($img_src);
$src_w = $size[0]; $src_h = $size[1];
// Teste les dimensions tenant dans la zone
$test_h = round(($dst_w / $src_w) * $src_h);
$test_w = round(($dst_h / $src_h) * $src_w);
// Si Height final non précisé (0)
if(!$dst_h) $dst_h = $test_h;
// Sinon si Width final non précisé (0)
elseif(!$dst_w) $dst_w = $test_w;
// Sinon teste quel redimensionnement tient dans la zone
elseif($test_h>$dst_h) $dst_w = $test_w;
else $dst_h = $test_h;
// Affiche les dimensions optimales
echo "WIDTH=".$dst_w." HEIGHT=".$dst_h;
}
?>
<html>
<head>
<title>Отправка Файла</title>
<script type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}
//-->
</script>
</head>
<body>
<h1>Отправка Файла </h1>
<h2>Files found in <?=$dossier_cible?></h2><br />
<table align="center" width="80%" cellspacing="0" cellpadding="2" bgcolor="#EFEFEF">
<tr style="background:#7F7F7F;"><td width="35%"> Files</td><td> Description</td></tr>
<?php
$d = opendir($dossier_cible); readdir($d); readdir($d);
while($f = readdir($d))
{
if($f == ".htaccess" || $f=="d") continue;
$desc = implode('',file("$dossier_cible/d/$f"));
?>
<tr><td>
<?php
$size = GetImageSize($dossier_cible.$f);
$w = $size[0]; $h = $size[1];
?>
<a href="#"><img src="<?=$dossier_cible.htmlentities($f)?>" border="0" onClick="MM_openBrWindow('<? echo $dossier_cible.$f ?>','big','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=<? echo $w ?>,height=<? echo $h ?>')" <?redimage("$dossier_cible$f",100,100)?>></a></td>
<td><?=nl2br($desc)?></td></tr>
<? } ?>
</table>
<br /><hr /><br />
<h2>Send new file:</h2>
<form method="post" action="upload_discography.php" enctype="multipart/form-data">
<i>Send file:</i><br />
<input type="file" name="f" size="60" />
<br /><br />
<i>Description:</i><br />
<textarea name="d" cols="40" rows="10"></textarea>
<br /><br />
<input type="reset" name="annuler" value="Cancel">
<input type="submit" value="Send !" onClick="value='Whait...'"/>
</form>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: cccp
(17.01.2006 в 00:16)
| | Понятно.
Сейчас сделаем что-нибудь. | |
|
|
|
|
|
|
|
для: WebTech
(17.01.2006 в 15:21)
| | Ого! Придется конкретно доделать скрипт :-) Счас сделаем, если подождешь. | |
|
|
|
|
|
|
|
для: WebTech
(17.01.2006 в 15:51)
| | КОНЕЧНО!
Я вам так благодарен...
Так как сам читаю книжку одну, но пока всё сам не понимаю.
Хочу купить какую нибудь хорошую книгу с примерами, но они дорого стаят...Так что всё откладываю и откладываю.
WebTech,
Только пожалуста напиши(те) коментарии к функциям , что бы я понял разобрался в функциях на будуюшие, ок?!
Ужастно тебе-вам БЛАГОДАРЕН!
Жду с нетерпением! | |
|
|
|
|
 6.4 Кб |
|
|
для: cccp
(17.01.2006 в 16:33)
| | Вот. Смотри в аттаче. | |
|
|
|
|
|
|
|
для: WebTech
(17.01.2006 в 19:32)
| | Огромное спасибо!
Только не мог бы ты записать в другом кодирование.
Так как я все русские буквы в таком виде вижу :
?;:,ùр;,с;_é_ç^¨
Так же в твоём текстовом файле.
Плиз!
Если конечно же ты не стёр уже.
PS:
и ещё...
Я проверил скрипт. Всё работает, огромное спасибо ещё раз!
Только вот хотел бы узнать можно ли что нибудь сделать со страничкой edit_form.php
Так как там когда смотриш содержымое файла то высвечиваются символы <br />
1-Warning<br />
2-provertka
А потом если всё не стирать, то на главной странице они остаются как текст.
Я понятно объястнил?
Есть ли какой нибудь выход? | |
|
|
|
|
|
|
|
для: cccp
(17.01.2006 в 22:22)
| | Почему у тебя русскими буквами не печатается не знаю. Возможно несоответствие кодировок редакторов, в которых создаем/смотрим или еще что... Честно говоря разбираться неохота. Поэтому отправляю тебе все в формете rtf, потом все в php переделаешь.
Насчет
1-Warning<br />
2-provertka
там надо убрать функцию nl2br(), поскольку вывод идет в textarea, a не в браузер напрямую. Мой недосмотр :-)
В общем, смотри, если что пиши. | |
|
|
|
|
|
|
|
для: WebTech
(18.01.2006 в 16:46)
| | Так ОК!
Огромное СПАСИБО!!!
Я завтра или на днях посмотрю и разберусь во всём.
Спасибо за все описания в скрипте. | |
|
|
|
|
|
|
|
для: cccp
(19.01.2006 в 00:00)
| | Привет!
Это опять я.
А можно ли добавить в скрипт что бы разрешение загрузки файлов была только для фото форматов, типа : .gif, .jpg, и т.д.? | |
|
|
|
|
|
|
|
для: cccp
(21.01.2006 в 01:39)
| | В файле upload_discography.php надо добавить проверку на тип переданного от клиента файла до все остальных проверок, т.е. до проверки на загруженность файла и на существование файла. Добавь строки
$filetype = $_FILES['f']['type']; // получаем тип файла
if ($filetype != 'image/gif' && $filetype != 'image/jpeg' && $filetype != 'image/pjpeg')
{
die ("<center>
Разрешено загружать только файлы типов JPEG или GIF!<br>
<a href=\"#\" onclick=\"history.go(-1);return(false)\">Retour</a>
</center>");
}
|
Проверка на image/jpeg или image/pjpeg нужна потому, что разные клиенты немного по разному передают MIME-тип файла. Например, Internet Explorer передает MIME-тип для файлов JPEG как "image/pjpeg", а Опера передает как "image/jpeg". | |
|
|
|
|
|
|
|
для: WebTech
(21.01.2006 в 10:03)
| | Спасибо!
Только теперь какая-то ошибка проишодит в каждый раз.
Я теперь не могу просто выйти на эту страничку.
У меня сразу пишет:
"Разрешено загружать только файлы типов JPEG или GIF" | |
|
|
|
|
|
|
|
для: cccp
(21.01.2006 в 11:50)
| | У меня все работает. А ты куда поставил эту проверку? Она должна быть внутри секции
if(isset($_FILES['f']) && isset($_POST['d']))
{
...
}
|
А может быть ты загружаешь какие-нибудь еще файлы? Не JPEG и не GIF? | |
|
|
|
|
|
|
|
для: WebTech
(21.01.2006 в 13:51)
| | Да, ты был прав, я просто строку немножко не туда поставил.
Теперь работает, ОК !
ОГРОМНОЕ СПАСИБО, ещё раз!
Слушай, я тут сам пробовал поставить эту функцию, но не получилось.
Хотел бы узнать возможно ли вообше добавить это за место простого popup по размеру фото файла:
<script language="JavaScript"><!--
nn4 = (document.layers)? true : false;
ie4 = (document.all)? true : false;
nn6 = (document.getElementById && !ie4)? true : false;
function ow(cardName, winW, winH, winTitle) {
if (nn4 || ie4 || nn6) {
posX = Math.round((screen.width - winW) / 2);
posY = Math.round((screen.height - winH) / 2);
posCode = (nn4 || nn6)? 'screenX='+posX+',screenY='+posY : 'left='+posX+',top='+posY;
} else { posCode = ''; }
cardWindow = window.open('','ttt','menubar=no,toolbar=no,scrollbars=no,status=no,width='+winW+',height='+winH+','+posCode);
cardWindow.document.open();
cardWindow.document.write('<html><head><title>'+winTitle+'<\/title><\/head>');
cardWindow.document.write('<body marginwidth=0 marginheight=0 topmargin=0 leftmargin=0 rightmargin=0 bottommargin=0>');
cardWindow.document.write(cardName+'><\/body><\/html>');
cardWindow.document.close();
cardWindow.focus();
}
function popupWin(cardName, winW, winH, winTitle) {
if (nn4 || ie4 || nn6) {
posX = Math.round((screen.width - winW) / 2);
posY = Math.round((screen.height - winH) / 2);
posCode = (nn4 || nn6)? 'screenX='+posX+',screenY='+posY : 'left='+posX+',top='+posY;
} else { posCode = ''; }
cardWindow = window.open('','_blank','menubar=no,toolbar=no,scrollbars=no,status=no,width='+winW+',height='+winH+','+posCode);
cardWindow.document.open();
cardWindow.document.write('<html><head><title>'+winTitle+'<\/title><\/head>');
cardWindow.document.write('<body marginwidth=0 marginheight=0 topmargin=0 leftmargin=0 rightmargin=0 bottommargin=0>');
cardWindow.document.write(cardName+'><\/body><\/html>');
cardWindow.document.close();
cardWindow.focus();
}
// -->
</script>
|
onClick="popupWin('<img src=<?php echo $dossier_cible.$f ?>'); return false;">
|
| |
|
|
|
|
|
|
|
для: cccp
(21.01.2006 в 14:53)
| | Ого! Эти функции принципиально нового ничего не делают, кроме того, что открывают popup ровно посерединке открытой страницы :-)
Если хочешь, можно использовать. Тебе нужна будет только одна функция popupWin(), и к тому же ее надо немного доработать. Так:
function popupWin(cardName, winW, winH, winTitle)
{
nn4 = (document.layers)? true : false;
ie4 = (document.all)? true : false;
nn6 = (document.getElementById && !ie4)? true : false;
if (nn4 || ie4 || nn6) {
posX = Math.round((screen.width - winW) / 2);
posY = Math.round((screen.height - winH) / 2);
posCode = (nn4 || nn6)? 'screenX='+posX+',screenY='+posY : 'left='+posX+',top='+posY;
} else { posCode = ''; }
cardWindow = window.open('','_blank','menubar=no,toolbar=no,scrollbars=no,status=no,width='+winW+',height='+winH+','+posCode);
cardWindow.document.open();
cardWindow.document.write('<html><head><title>'+winTitle+'<\/title><\/head>');
cardWindow.document.write('<body marginwidth=0 marginheight=0 topmargin=0 leftmargin=0 rightmargin=0 bottommargin=0>');
cardWindow.document.write('<img src="'+cardName+'"><\/body><\/html>');
cardWindow.document.close();
cardWindow.focus();
}
|
Эта функция принимает url картинки, ширину, высоту и четвертым параметром заголовок popup'a
Соответственно, когда надо вызвать, пишем
onClick="popupWin('<?php echo $dossier_cible.$f ?>', <?php echo $w ?>, <?php echo $h ?>, 'header'); return false;"
|
В качестве заголовка окна я написал слово "header", но можно что угодно.
P.S.
Кстати, в Опере почему то не работает :-( Не размещает посередине экрана
И еще, просьба. Начинай новую тему в форуме, если она новая :-) | |
|
|
|
|
|
|
|
для: WebTech
(21.01.2006 в 16:44)
| | Ок.
Спасибо Большое!
ПС:
Немного хочу вернутся назад...
В твоей строчке для обработки типа файлов:
$filetype = $_FILES['f']['type']; // poluchaem tip fajla
if ($filetype != 'image/gif' && $filetype != 'image/jpeg' && $filetype != 'image/pjpeg' && $filetype != 'image/jpg' && $filetype != 'image/bnp' && $filetype != 'image/png')
|
хочу понять...
Какую роль играет 'image/ ?
Если я захочу, как можно поменять например на файлы типа .mp3 или .wav ? | |
|
|
|
|
|
|
|
для: cccp
(22.01.2006 в 03:04)
| | "image/gif" или "image/jpeg" так называются MIME-типы графических файлов GIF и JPEG.
Вот еще другие распространенные MIME-типы:
application/msword - документы Microsoft Word, расширение doc
application/x-shockwave-flash - Flash-ролики, swf
application/zip - архив zip
audio/midi - файлы mid
audio/mpeg - файлы mp3, mp2
audio/x-wav - файлы wav
image/bmp - изображения bmp
image/png - изображения png
image/tiff - изображения tiff
text/plane - файлы txt
video/mpeg - видеофайлы mpeg, mpe, mpg
video/x-msvideo - видеофайлы avi
Поэтому, для того, чтобы проверить, например, является ли загруженный файл zip-архивом, надо написать:
if ($filetype != 'application/zip')
|
кстати, у тебя написано image/jpg, такого MIME-типа нет, jpg - это расширение файла | |
|
|
|
|
|
|
|
для: WebTech
(22.01.2006 в 07:47)
| | И как же тогда сделать для .jpg файлов?
Или MIME-типе image/jpeg это то что и надо? | |
|
|
|
|
|
|
|
для: cccp
(22.01.2006 в 13:59)
| | То что надо :-) | |
|
|
|
|
|
|
|
для: WebTech
(22.01.2006 в 14:49)
| | Понятно!
Спасибо огромное WebTech ! | |
|
|
|
|