PHP форма за качване на снимки

blastpit

Registered
Здравейте!
Трябва ми PHP форма за качване на снимки.
Просто да качва снимките в дадена папка например uppics.
И да има 2 полета за въвеждане на Име и Град при качването на снимката, т.е Аз да знам кой е качил дадена снимка и от къде е.
Това е!
blastpit каза:
Формата трябва да е така:
1515.jpg

и
да се създаде:
DSC00137.txt
и вътре да пише:
Ivan Plovdiv
 
Код:
<?php
// Извикваш си връзката
mysql_query("SET NAMES cp1251");
echo '<form enctype="multipart/form-data" action="uploader.php" method="POST">
';
echo "Име: ";
echo "<input type='text' name='name' />";
echo "Град: ";
echo "<input type='text' name='city' />";
echo "<input type='file' name='file' id='file' /> ";
echo "<input type='submit' name='upload' value='Качи' />";
echo "</form>";

if(isset($_POST['upload'])) {
$name=addslashes($_POST['name'];
$name=htmlspecialchars($name);
$city=addslashes($_POST['ncity'];
$city=htmlspecialchars($city);

if(empty($name) || empty($city) {
die("Трябва да попълните всички полета!");

if ($_FILES["file"]["type"] == "image/jpeg") {
     $path= move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
$f=mysql_query("INSERT INTO `таблица` (`поле`,`поле`,`поле`) VALUES ('$name','$city','$path')") or die(mysql_error());
if($path && $f) {
echo "Файлът е качен успешно!";
}else{
echo "Грешка при качването на файла";
}
}

}
?>
Ако има грешки кажи.
 
Няма ли да стане без mysql. Например след като качи файла DSC023054.jpg Да създаде текст файл (за всеки файл) със същото име (DSC023054.txt) и вътре да запише името и града . :idea:
 
blastpit каза:
Няма ли да стане без mysql. Например след като качи файла DSC023054.jpg Да създаде текст файл (за всеки файл) със същото име (DSC023054.txt) и вътре да запише името и града . :idea:

http://web-tourist.net/login/login/view.php?st=1206

Ето тая :) С малко преработки ще си нагласиш както искаш :?:
 
Код:
<?php 
// Максимална големина на файла за качване (сега е 2 ГБ) 
$MAX_SIZE = 268435456; 


$FILE_EXTS = array('.zip','.jpg','.png','.gif','.doc','.avi','.sub');  


// Възможност за триене на качени файлове. При TRUE - може да се трият, при FALSE - не. 
$DELETABLE = true; 


if($_POST['ime']=='');
if($_POST['grad']=='');

$ime = $_POST['ime']; 
$grad = $_POST['grad']; 


$site_name = $_SERVER['HTTP_HOST']; 
$url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']); 
$url_this = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; 

$upload_dir = "files/"; 
$upload_url = $url_dir."/files/"; 
$message =""; 


if (!is_dir("files")) { 
if (!mkdir($upload_dir)) 
die ("upload_files директорията не съществува и създаването и е невъзможно."); 
if (!chmod($upload_dir,0755)) 
die ("change permission to 755 failed."); 
} 


if ($_REQUEST[del] && $DELETABLE) { 
$resource = fopen("log.txt","a"); 
fwrite($resource,date("Y/m/d h:i:s")." От IP - $_SERVER[REMOTE_ADDR]".(" Беше изчистен файла: ")."$_REQUEST[del]".("
--------------------------
")); 
fclose($resource); 

if (strpos($_REQUEST[del],"/.")>0); 
else if (strpos($_REQUEST[del],$upload_dir) === false); 
else if (substr($_REQUEST[del],0,6)==$upload_dir) { 
unlink($_REQUEST[del]); 
print "<script>window.location.href='$url_this?message=deleted successfully'</script>"; 
} 
} 
else if ($_FILES['userfile']) { 
$resource = fopen("log.txt","a"); 
fwrite($resource,date("Дата: Y/m/d 
Час: h:i:s").("
Име: $ime
Град: $grad").("
От IP: $_SERVER[REMOTE_ADDR]").("
Име на файла: ").$_FILES['userfile']['name'] .("
Тип: ").$_FILES['userfile']['type'].("
--------------------------
")); 
fclose($resource); 

$file_type = $_FILES['userfile']['type']; 
$file_name = $_FILES['userfile']['name']; 
$file_ext = strtolower(substr($file_name,strrpos($file_name,"."))); 

// Ако променята макс. големина на качващия се файл променети и по-долното съобщение. 
if ( $_FILES['userfile']['size'] > $MAX_SIZE) 
$message = "Този файл е над 2 GB."; 

else if (!in_array($file_ext, $FILE_EXTS)) 
$message = "Извинете, $file_name($file_type) не може да се качи(файла не е поддържан)."; 
else 
$message = do_upload($upload_dir, $upload_url); 

print "<script>window.location.href='$url_this?message=$message'</script>"; 
} 
else if (!$_FILES['userfile']); 
else 
$message = "Невалиден формат."; 


$handle=opendir($upload_dir); 
$filelist = ""; 
while ($file = readdir($handle)) { 
if(!is_dir($file) && !is_link($file)) { 
$filelist .= "<a href='$upload_dir$file'>".$file."</a> - URL: <b>$upload_url$file</b>"; 
if ($DELETABLE) 

$filelist .= " Качен на ".date("d-m H:i", filemtime($upload_dir.$file)) 
."";
$filelist .= " <a style='text-decoration:none; font-weight:bold' href='?del=$upload_dir".urlencode($file)."' title='delete'>x</a>"; 
$filelist .="<br>"; 
} 
} 

function do_upload($upload_dir, $upload_url) { 

$temp_name = $_FILES['userfile']['tmp_name']; 
$file_name = $_FILES['userfile']['name']; 
$file_name = str_replace("\\","",$file_name); 
$file_name = str_replace("'","",$file_name); 
$file_path = $upload_dir.$file_name; 


if ( $file_name =="") { 
$message = "Грешно име"; 
return $message; 
} 

$result = move_uploaded_file($temp_name, $file_path); 
if (!chmod($file_path,0777)) 
$message = "change permission to 777 failed."; 
else 
$message = ($result)?"$file_name е качен успешно." : 
"Има грешка с избрания файл."; 
return $message; 
} 

?> 


<html> 
<head> 
<title>Форма за качване</title> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> 
</head> 
<body> 
<br><br> 
<center> 
<font color="red"><?=$_REQUEST[message]?></font> 
<br> 
<form name="upload" id="upload" ENCTYPE="multipart/form-data" method="post"> 
Име <input type="text" name="ime" ><br />
Град <input type="text" name="grad" ><br />
Качи файл <input type="file" id="userfile" name="userfile">

<input type="submit" name="upload" value="Upload"> 
</form> 
<br><b><u>Качени файлове:</b></u><br><br> 

<?=$filelist?>
</center>

НЕЩО ТАКОВА ?! :)
 
Аз искам същото, само че на отделен page да се показват снимките, които са качени. Ако може да ми направите и 2-та page-а. Аз само да ги сложа ще съм ви много, мнооогооо благодарен.
 

Back
Горе