Прошу помощи разобраться с кусочком кода))

x4team

Новичок
Прошу помощи разобраться с кусочком кода))

Есть файл-менеджер для сайта с использованием базы данных, устанавливается элементарно, единственное, что не нравиться, это то, что он присваивает загруженному файлу имя типа даты "20091013....", вот кусок кода:

PHP:
		if ($goodtype == "Y") { 	
				$this_date = date("Ymdhis");
				$this_name = $this_date.".".$ext;;
				$insert = "insert into $dbtable (description,filename) values ('". addslashes($description) ."','$this_name')";
				$result = mysql_query ($insert);
				$items_id=mysql_insert_id();
				echo "<CENTER><P>File has been uploaded!";
				$thisfile = fread(fopen($userfile, "r"), filesize($userfile));
				$new_file = "$directory/$this_name";
				$filewrite = fwrite(fopen($new_file, "w"), $thisfile, filesize($userfile));
				$this_info = "$directory/$this_name";
Переменная $this_name , как видно, отвечает за имя файла, как выкрутиться из этой ситуации?
P.S. видимо надо удалить первоначальную строчку $this_date = date("Ymdhis"); , а значение для $this_name прописать другое, только что?
 

Adelf

Administrator
Команда форума
Ну наверно, он так делает не просто так? Чтобы не переписать файл наверн...

А так.. ну замени
PHP:
$this_date = date("Ymdhis");
$this_name = $this_date.".".$ext;
На
PHP:
$this_name = "upload.".$ext;
и пробуй как все будет работать...
 

x4team

Новичок
все работает, но имя файла теперь upload вместо первоначального, нужно чтобы скрипт не изменял имя файла, а сохранял его.
 

Adelf

Administrator
Команда форума
print_r($_FILES) и скорее всего ты там найдешь нужное. Имя файла загружаемого то бишь.
 

x4team

Новичок
iceman
Я уже определился.
...нужно чтобы скрипт не изменял имя файла, а сохранял его.

Adelf
Выдает ошибку, точнее не работает.
 

A1x

Новичок
...нужно чтобы скрипт не изменял имя файла, а сохранял его.
пользователи любят обычно загружать файлы с именами на своем родном языке напр. русском, с пробелами и т.п. Это точно то что тебе нужно?
 

x4team

Новичок
Автор оригинала: A1x
пользователи любят обычно загружать файлы с именами на своем родном языке напр. русском, с пробелами и т.п. Это точно то что тебе нужно?
A1x
Да, это к сожалению (или к счастью) банальный файловый менеджер для внутреннего использования, если никто не будет против- выкладываю исходный код скрипта

WGM Form Uploader 1.0

PHP:
<?

// CREATE A DB/TABLE HERE MAY BE NEEDED TO BE CHANGED ONCE TO Y
// THEN TURNED BACK TO N
$create_db = "N";
$create_table = "N";

// URL - MAY NEED TO BE INSERTED MANUALLY
$url = $HTTP_SERVER_VARS["SERVER_NAME"];
//$url = "http://www.mydomain.com";

// ROOT LOCATION OF WEBSITE (may need to be altered )
$rootdir = $HTTP_SERVER_VARS["DOCUMENT_ROOT"];
//$rootdir = "/home/sites/site/web";

// DIRECTORY NEEDS TO BE 666 AND OFF YOUR ROOT DIRECTORY
$directory = "uploads";
// (another example: $directory = "uploads/photos/name";



// TITLE OF PAGE 
$title = "Web Group Media Upload";

// Maximum Size of File
$maxsize = "300000";

// DATABSE INFORMATION
$dbhost = "localhost"; 
$dbuser = "user";
$dbpass = "pass";
$db = "uploadtest";
$dbtable = "uploadtest";

// MYSQL CONNECT
mysql_connect("localhost","$dbuser","$dbpass");

/// END OF EDIT NEEDED



// TABLE NEEDED IN DAtABASE
// WITH THREE FIELDS ONLY !
// id INTEGER AUTO_INCREMENT PRIMARY KEY
// description char(255)
// filename char(128)

// CREATE TABLE
	if ($create_db == "Y"){
	 if (mysql_create_db("$db")) {
        print ("Database created successfully\n");
    } else {
        printf ("Error creating database: %s\n", mysql_error ());
    }
	 }
	if ($create_table == "Y"){ 
	 $createtable = "CREATE TABLE $db.$dbtable (id INTEGER AUTO_INCREMENT PRIMARY KEY,description char(255),filename char(128))";
		if (mysql_query("$createtable")) {
        print ("Table created successfully\n");
    } else {
        printf ("Error creating table: %s\n", mysql_error ());
    }
	 }
	 
// SELECT DB 	 
 mysql_select_db("$db")
    or die("Could not select database");	 

// THE HEADER OF PAGE
echo "
<html>
<head>
<title>$title</title>
<style type='text/css'>
  BODY {font-family: Verdana, Helvetica, Arial; font-size: 8pt;}
  TD {font-family: Arial, Helvetica; font-size: 10pt;}
  INPUT {font-family: Arial, Helvetica; font-size: 10pt;}
  A:link {text-decoration: underline; color: #003030;}
  A:visited {text-decoration: underline; color: #002020;}
  A:hover {text-decoration: none;  color: #009090;}
  TEXTAREA {font-family: Arial, Helvetica;font-size: 10pt;height: 200px; width: 600px;}
 </STYLE>
</head>
<body>";







// DELETE FILE FUNCTION
				function delfile($file) {
				 $delete = @unlink($file);
				 if (@file_exists($file)) {
				 $filesys = eregi_replace("/","\\",$file);
				 $delete = @system("del $filesys");
				 if (@file_exists($file)) {
				 $delete = @chmod ($file, 0775);
				 $delete = @unlink($file);
				 $delete = @system("del $filesys");}}}



// CHECK TO SEE IF DELETE IS ACTIVATED
	 if (isset($D)){
	 			 $result=mysql("$db","SELECT  * from $dbtable where id='$I'");
	 			 $value = mysql_fetch_row($result);
				 $F = "$rootdir/$directory/$value[2]";
			   delfile($F);
		  	 $update = "delete from $dbtable where id='$I'";
			   $result = mysql_query ($update);
				 }
 


// NORMAL LISTING
	 if (!isset($upload)){
	 		echo "<CENTER>";
			echo "<TABLE width='600' CELLPADDING = '3' CELLSPACING='0' BORDER='0'>";
			echo "<tr><TD bgcolor='#99cccc' colspan='5'><B>FORMS</B><td></tr>";
			echo "<tr><TD bgcolor='#cccccc' ><B>ID</B></td><TD bgcolor='#cccccc' ><B>DESCRIPTION</B></td><TD bgcolor='#cccccc' ><B>TYPE</B></td><TD bgcolor='#cccccc' ><B>VIEW</B></td><TD bgcolor='#cccccc' ><B>DELETE</B></td></tr>";

    	$result3=mysql("$db","SELECT  * from $dbtable");
	 		while($value = mysql_fetch_row($result3))
		        {
						 $filename = $value[2];  
						 list ($filepart, $fileext) = split ('[/.-]', $filename);
							 echo "<tr><TD valign='top' ><B>$value[0]</B></td><TD   valign='top' ><B>$value[1]</B><BR><font size='1'>URL: $url/$directory/$value[2] </font></B></td><td  valign='top'><b>$fileext</b></td><TD  valign='top'><B><a href='$url/$directory/$value[2]'>VIEW</a></B></td><TD  valign='top' ><B><a href='$PHP_SELF?I=$value[0]&D=Y'>DELETE</a></B></td></tr>";
					  }
			echo "</table>";
			
		// Line Division				
			echo "<P><hr size='1' width='600'></P>";
  	
		// START OF UPLOAD FORM
		
			echo "
		   <FORM ENCTYPE='multipart/form-data' ACTION='$PHP_SELF' METHOD=POST>

			 <INPUT TYPE='hidden' name='MAX_FILE_SIZE' value='$maxsize'>
			 <INPUT TYPE='hidden' name='orderby' value='$orderby'>
			 <INPUT TYPE='hidden' name='item_id' value='$item_id'>
			 <INPUT TYPE='hidden' name='upload' value='Y'>
			
			  <TABLE width='600' CELLPADDING = '3' CELLSPACING='0' BORDER='0'>
	  	  <tr><TD bgcolor='#99cccc' colspan='2'>ADD FORM TO SITE<td></tr>
			  <tr>
				 <td>DESCRIPTION OF FILE:</td><td><INPUT NAME='description' TYPE='text' size='30'></td>
				</tr>
			  <tr>
         <td>FILE TO UPLOAD:</td><td><INPUT NAME='userfile' TYPE='file' size='30'></td>
			  </tr>
			  <tr>
         <td colspan='2'><INPUT TYPE='submit' VALUE='Send File'></td>
			  </tr>
			 </FORM>
			</table>";

			} else {

     if (file_exists($userfile)){	
   		 
			 
			 $file_size = filesize($userfile);  
 	
				 if ($file_size >= $maxsize)  {  
			   		echo "<center>Thise File is too large.";
			      exit();
					 }
	
		$goodtype = "N";		

		 if ($userfile_type == "image/pjpeg") { 
			  $ext ="jpg"; 
  			$goodtype = "Y";
			}
		 if ($userfile_type == "image/gif") { 
			$ext ="gif"; 
			$goodtype = "Y";
    	}	
  	 if ($userfile_type == "application/pdf") { 
			$ext ="pdf"; 
			$goodtype = "Y";
			}	
		 if ($userfile_type == "application/msword") { 
			$ext ="doc"; 
			$goodtype = "Y";
			}	
	
		if ($goodtype == "Y") { 	
				$this_date = date("Ymdhis");
				$this_name = $this_date.".".$ext;
				$insert = "insert into $dbtable (description,filename) values ('". addslashes($description) ."','$this_name')";
				$result = mysql_query ($insert);
				$items_id=mysql_insert_id();
				echo "<CENTER><P>File has been uploaded!";
				$thisfile = fread(fopen($userfile, "r"), filesize($userfile));
				$new_file = "$rootdir/$directory/$this_name";
				$filewrite = fwrite(fopen($new_file, "w"), $thisfile, filesize($userfile));
				$this_info = "$url/$directory/$this_name";
			
				echo "<P><a href='$this_info' target='_BLANK'>VIEW HERE</a></a>";

					} else {

				echo "$userfile_type is an unknown file type!<P> Sorry, but we only accept pdfs,docs,gifs and jpg file format!";

			}
					echo "<P><A href='$PHP_SELF'>ADD ANOTHER FORM</a>";
		}


}






?>
 

A1x

Новичок
x4team
ну при чем тут код скрипта. Как будут использоваться дальше залитые файлы? Просто если появляются русские буквы в именах файлов (а они появятся при таком подходе) - обязательно жди какого-нибудь гемороя.

Из-за этого обычно и сохраняют файлы с другим именем
 
А ещё файлы бывает кэшируются браузером (картинки там всякие), поэтому следует к имени файла добавить дату например.
 

pilot911

Новичок
Автор оригинала: Человек Мотор
А ещё файлы бывает кэшируются браузером (картинки там всякие), поэтому следует к имени файла добавить дату например.
это вопрос выдачи результата, к тому же картинки должны кэшироваться )
 
Автор оригинала: pilot911
это вопрос выдачи результата, к тому же картинки должны кэшироваться )
Должны. А чтобы при изменении картинки браузер показывал новую картинку а не старую надо менять имя файла (например).
 

Адексия

Новичок
Дабы не плодить темы. код должен выдавать новые разные размеры в зависимости от браузера
function window_width()
{
if (window.innerWidth)
{
return window.innerWidth; // IE
}
if (document.body.clientWidth)
{
return document.body.clientWidth; // все нормальные
}
return 600; // если ничего не сработало
}

function window_width1()
{
var r = window_width();

var br = navigator.appName;

if (br == 'Microsoft Internet Explorer')
{
return r;
}

if (br == 'Netscape') // Firefox
{
return = r - 27;
}
}
var s
s=window_width1()
alert (s)
что-то я здесь не правильно написала
 

Beavis

Banned
Адексия
Во-первых ты ошиблась разделом форума. Для Javascript есть свой раздел.
Во-вторых не надо задавать свои вопросы в чужих темах, темы для того и придумали чтобы их "плодить"
И в-третьих в твоем сообщении нет ни одного вопроса, так что не понятно, что тебе от нас нужно.
 

HraKK

Мудак
Команда форума
Адексия
http://phpclub.ru/talk/forumdisplay.php?s=&forumid=17
 
Сверху