На этом месте находится расчудесная шапка. Включите flash - не пожалеете!

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Upload
ingvard
сообщение 18.4.2008, 15:57
Сообщение #1


Только зарегистрировавшийся


Группа: Пользователи
Сообщений: 7
Регистрация: 18.4.2008

Пользователь №: 13 532



Репутация:   0  


Вот есть скрипт http://4script.info/2008/01/28/khosting-fa..._devil_tlt.html он очень похож на upload как у http://tracers.ru/upload/ только как сделать что бы ссылка на загруженный сайт была короче…
Пример
http://4script.info/2008/01/28/khosting-fa..._devil_tlt.html
У него ссылка на пакет 5b241264d57b9056d3da07c8ad703d92
http://tracers.ru/upload/
У него ссылка на пакет 45646
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
liw
сообщение 18.4.2008, 16:39
Сообщение #2


Житель
***

Группа: Модераторы
Сообщений: 283
Регистрация: 2.11.2007

Пользователь №: 6 760



Репутация:   20  


Вы предлагает скачать скрипт и переделать его?

Извините но это бесполезное занятие.
Зачем вам вообще это нужно?

Ну а если просто сказать, то:
вести счётчик файлов и каждый новый файл переименовывать соответственно номеру (ну или
не переименовывать а сохранять куда то в файл (как я понял базы там не используются)).
Вот и всё.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ingvard
сообщение 18.4.2008, 17:39
Сообщение #3


Только зарегистрировавшийся


Группа: Пользователи
Сообщений: 7
Регистрация: 18.4.2008

Пользователь №: 13 532



Репутация:   0  


Вот смотри как я понимаю $filecrc = md5_file($_FILES['upfile']['tmp_name']); это даёт будущие имя пакета а имено ['tmp_name'] его можно какнить заменить? что бы генерировало болие маленький код.
Код
<?php
include("./config.php");
include("./header.php");

$filename = $_FILES['upfile']['name'];
$filesize = $_FILES['upfile']['size'];
$filecrc = md5_file($_FILES['upfile']['tmp_name']);

$bans=file("./db/bans.php");
foreach($bans as $line)
{
  if ($line==$filecrc."\n"){
    echo "Этот файл не может быть загружен.";
    include("./footer.php");
    die();
  }
  if ($line==$_SERVER['REMOTE_ADDR']."\n"){
    echo "Вы не можете загружать файлы.";
    include("./footer.php");
    die();
  }
}

$checkfiles=file("./db/files.php");
foreach($checkfiles as $line)
{
  $thisline = explode('|', $line);
  if ($thisline[0]==$filecrc){
    echo "Этот файл уже загружен.<br />";
    echo "Ссылка для скачивания: <a href=\"" . $scripturl . "download.php?file=" . $filecrc . "\">". $scripturl . "download.php?file=" . $filecrc . "</a><br />";
    echo "Этот файл первоначально был загружен не вами, так что Вы не сможете удалить ссылку.";
    include("./footer.php");
    die();
  }
}

if(isset($allowedtypes)){
$allowed = 0;
foreach($allowedtypes as $ext) {
  if(substr($filename, (0 - (strlen($ext)+1) )) == ".".$ext)
    $allowed = 1;
}
if($allowed==0) {
   echo "Этот тип файла не может быть загружен.";
   include("./footer.php");
   die();
}
}

if(isset($categorylist)){
$validcat = 0;
foreach($categories as $cat) {
  if($_POST['category']==$cat || $_POST['category'] = ""){ $validcat = 1; }
}
if($validcat==0) {
   echo "Была выбрана неправильная категория..";
   include("./footer.php");
   die();
}
$cat = $_POST['category'];
} else { $cat = ""; }

if($filesize==0) {
echo "Вы не выбрали файл чтобы загрузить его.";
include("./footer.php");
die();
}

$filesize = $filesize / 1048576;

if($filesize > $maxfilesize) {
echo "Файл, который Вы загрузили, слишком большой.";
include("./footer.php");
die();
}

$userip = $_SERVER['REMOTE_ADDR'];
$time = time();

if($filesize > $nolimitsize) {

$uploaders = fopen("./db/uploaders.php","r+");
flock($uploaders,2);
while (!feof($uploaders)) {
$user[] = chop(fgets($uploaders,65536));
}
fseek($uploaders,0,SEEK_SET);
ftruncate($uploaders,0);
foreach ($user as $line) {
@list($savedip,$savedtime) = explode("|",$line);
if ($savedip == $userip) {
if ($time < $savedtime + ($uploadtimelimit*60)) {
echo "Вы пытаетесь загрузить снова слишком рано!";
include("./footer.php");
die();
}
}
if ($time < $savedtime + ($uploadtimelimit*60)) {
  fputs($uploaders,"$savedip|$savedtime\n");
}
}
fputs($uploaders,"$userip|$time\n");

}

$passkey = rand(100000, 999999);

if($emailoption && isset($_POST['myemail']) && $_POST['myemail']!="") {
$uploadmsg = "Ваш файл (".$filename.") был загружен.\n Ссылка для скачивания: ". $scripturl . "download.php?file=" . $filecrc . "\n Ссылка для удаления файла: ". $scripturl . "download.php?file=" . $filecrc . "&del=" . $passkey . "\n Благодарим вас за использование нашего сервиса!";
mail($_POST['myemail'],"Ваш загруженный файл",$uploadmsg,"From: admin@yoursite.com\n");
}

if($passwordoption && isset($_POST['pprotect'])) {
  $passwerd = md5($_POST['pprotect']);
} else { $passwerd = md5(""); }

if($descriptionoption && isset($_POST['descr'])) {
  $description = strip_tags($_POST['descr']);
} else { $description = ""; }

$filelist = fopen("./db/files.php","a+");
fwrite($filelist, $filecrc ."|". basename($_FILES['upfile']['name']) ."|". $passkey ."|". $userip ."|". $time."|0|".$description."|".$passwerd."|".$cat."|\n");

$movefile = "./storage/" . $filecrc;
move_uploaded_file($_FILES['upfile']['tmp_name'], $movefile);

echo "Ваш файл был загружен!<br />";
echo "Ссылка для скачивания: <a href=\"" . $scripturl . "download.php?file=" . $filecrc . "\">". $scripturl . "download.php?file=" . $filecrc . "</a><br />";
echo "Ссылка для удаления файла: <a href=\"" . $scripturl . "download.php?file=" . $filecrc . "&del=" . $passkey . "\">". $scripturl . "download.php?file=" . $filecrc . "&del=" . $passkey . "</a><br />";
echo "Пожалуйста запомните эти ссылки.";
include("./footer.php");
?>
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
liw
сообщение 21.4.2008, 19:00
Сообщение #4


Житель
***

Группа: Модераторы
Сообщений: 283
Регистрация: 2.11.2007

Пользователь №: 6 760



Репутация:   20  


Ну да ты правильно понимаешь.

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

То есть вместо строки:

$filecrc = md5_file($_FILES['upfile']['tmp_name']);

Тебе нужно:

1. взять из базы или из файла (где хранить будешь) номер.
2. $filecrc = полученный номер.

Ну и в конце, когда файл нормально загрузился:

3. записать в базу(в файл) очередной номер (ну увеличить счётчик короче)
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ingvard
сообщение 3.5.2008, 11:17
Сообщение #5


Только зарегистрировавшийся


Группа: Пользователи
Сообщений: 7
Регистрация: 18.4.2008

Пользователь №: 13 532



Репутация:   0  


Цитата(liw @ 21.4.2008, 19:00) *

Ну да ты правильно понимаешь.

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

То есть вместо строки:

$filecrc = md5_file($_FILES['upfile']['tmp_name']);

Тебе нужно:

1. взять из базы или из файла (где хранить будешь) номер.
2. $filecrc = полученный номер.

Ну и в конце, когда файл нормально загрузился:

3. записать в базу(в файл) очередной номер (ну увеличить счётчик короче)

Сделал проще rand(1000, 9999);
Авто генирация числа сенкс за помощьsmile.gif
Так же можно tmp_name заменить словом size или name будет ссылка в виде имени файлаsmile.gif
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ilyazh
сообщение 3.5.2008, 13:17
Сообщение #6


Житель
***

Группа: Пользователи
Сообщений: 355
Регистрация: 16.12.2007

Пользователь №: 8 300



Репутация:   3  


хех. Зря ты так сделал. Числа могут и повториться. А что тогда будет делать твой скрипт если 2 одинаковых записи? А если такой файл существует, то будешь ошибка и второй не зальётся.
Лучше используй не radn(), а time();
Врятли скрипт сработает секунду в секунду у 2 пользователей. А по скольку время всегда изменяется, то это можно сказать уникальное число.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
liw
сообщение 4.5.2008, 9:47
Сообщение #7


Житель
***

Группа: Модераторы
Сообщений: 283
Регистрация: 2.11.2007

Пользователь №: 6 760



Репутация:   20  


Может повторится, как имя файла так и размер и время. Короче, - решать вам.

Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 8.9.2008, 19:27
Rambler's Top100 Яндекс цитирования