X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Нужна помощь со скриптом примитивного файлообменника.
Sin_hb
Sin_hb
Topic Starter сообщение 15.6.2011, 1:36; Ответить: Sin_hb
Сообщение #1


Здравствуйте! Необходима помощь со скриптом.
итак, есть скрипт:
<html>
    <head>
        <title><?=$_SERVER ["HTTP_HOST"];?>: One click demo hosting</title>
        <link rel="stylesheet" type="text/css" media="all" href="style.css">
    </head>
    <body>
        <table width="100%" height="100%"><tr valign="center"><td align="center" nowrap><div id="upload">
        <?php
            if (@$_POST ['upload'] == "")
            {
                echo 'Select file to upload | Maximum file size 2000 MB | Split archives allowed<br><br>';
                echo '<form enctype="multipart/form-data" action="" method="post">';
                echo '<input type="hidden" name="MAX_FILE_SIZE" value="30000">';
                echo '<input type="file" name="file" size="45">';
                echo '<input type="submit" value=" Upload " name="upload">';
                echo '</form>';
            } else {
                $upload_dir = "/uploads/";
                $upload_path = dirname (__FILE__).$upload_dir;
                $upload_filename = md5 (microtime());
                $upload_link = "http://".$_SERVER ["HTTP_HOST"].dirname ($_SERVER ["PHP_SELF"]).$upload_dir.$upload_filename;
                if (@move_uploaded_file ($_FILES['file']['tmp_name'], $upload_path.$upload_filename))
                {
                    echo "<b>File is valid, and was successfully uploaded.</b><br><br>";
                    echo "Download Link:<br>";
                    echo "<input type='text' size=80 onclick='this.select()' value='".$upload_link."'><br><br>";
                    echo "Download Link in HTML (for use in web sites, myspace, blogs, etc):<br>";
                    echo "<input type='text' size=80 onclick='this.select()' value=\"<a href='".$upload_link."'>".$upload_link."</a>\"><br><br>";
                    echo "Download Link in Forum code (for use in phpBB, vBulletin, etc):<br>";
                    echo "<input type='text' size=80 onclick='this.select()' value='[url]".$upload_link."[/url]'><br><br>";
                    echo "<a href='?".md5(microtime())."'>Upload another file</a>";
                } else {
                    echo "<b>There some errors!</b>";
                }
            }
        ?>
    </div></td></tr></table></body>
</html>


И он рабочий, за исключением очень важной вещи:
При генерации ссылки на закаченный файл, происходит неладное...
$upload_filename = md5 (microtime());
Отсюда, адрес закаченного файла становиться примерно таким:
домен\uploads\kasdhiashdkibasdiga
Естественно, что по такой ссылку файл не открывает, не скачивается.

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

Заранее спасибо.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
adlic
adlic
сообщение 15.6.2011, 1:44; Ответить: adlic
Сообщение #2


Не думаю, что дело в этой функции. Что значит не открывается и не скачивается, может вы не потому адресу ищите? Файл закачивается на сервер? Под каким именем он лежит на хостинге?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Sin_hb
Sin_hb
Topic Starter сообщение 15.6.2011, 11:41; Ответить: Sin_hb
Сообщение #3


Файл закачивается, и конвертируется во что-то невообразимое.
Если закачивать архив archiv.rar, то якобы ссылка на него будет выглядеть так:
http://domen.ru/uploads/cd5b1822d01bbd6bf6b65664bee6f792


+ еще проблема:
Как мне кажется, в скрипте есть что-то еще кривое: кажется, что файлы более 0 кб не будут заливаться...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
adlic
adlic
сообщение 15.6.2011, 11:46; Ответить: adlic
Сообщение #4


Ну и я скачал этот файл, открыть его можно просто дописав в конце .rar и все. Вам нужно просто при загрузке добавлять формат файла и все.

[PHP]$file_ext = strrchr($_FILES['file']['name'], ".");
$upload_filename = md5 (microtime())."".$file_ext;[/PHP]
Не проверял, но должно работать..
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Sin_hb
Sin_hb
Topic Starter сообщение 15.6.2011, 12:37; Ответить: Sin_hb
Сообщение #5


А можно сделать так, чтобы имя файла не генерировалось, а было его настоящим?
Т.е. загруженный файл "archiv.rar" так и был:
/uploads/archiv.rar
?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
adlic
adlic
сообщение 15.6.2011, 12:41; Ответить: adlic
Сообщение #6


[PHP]$upload_filename=$_FILES['file']['name'];[/PHP]

Но тогда имена файлов могут совпадать и будет беда. Нужно либо имена генерировать все время новые, либо разбрасывать по каталогам с разными именами.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Sin_hb
Sin_hb
Topic Starter сообщение 15.6.2011, 17:06; Ответить: Sin_hb
Сообщение #7


Эм, а вот еще один вопрос по каталогам:
Можете помочь с такой вещью:
нужно, чтобы при загрузке пользователь мог сам выбрать в какой каталог закинуть файл, скажем, в каталоги folder, folder1 или folder3
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
adlic
adlic
сообщение 15.6.2011, 17:21; Ответить: adlic
Сообщение #8


[PHP]<html>
<head>
<title><?=$_SERVER ["HTTP_HOST"];?>: One click demo hosting</title>
<link rel="stylesheet" type="text/css" media="all" href="style.css">
</head>
<body>
<table width="100%" height="100%"><tr valign="center"><td align="center" nowrap><div id="upload">
<?php
if (@$_POST ['upload'] == "")
{
echo 'Select file to upload | Maximum file size 2000 MB | Split archives allowed';
echo '<form enctype="multipart/form-data" action="" method="post">';
echo '<input type="hidden" name="MAX_FILE_SIZE" value="30000">';
echo '<input type="file" name="file" size="45">';
echo '<input type="submit" value=" Upload " name="upload">';
echo '<select name="cat"><option value="folder1">Папка1</option><option value="folder2">Папка2</option><option value="folder3">Папка3</option></select>'
echo '</form>';
} else {
$upload_dir = "/uploads/".$_POST['cat']."";
$upload_path = dirname (__FILE__).$upload_dir;
$upload_filename = md5 (microtime());
$upload_link = "http://".$_SERVER ["HTTP_HOST"].dirname ($_SERVER ["PHP_SELF"]).$upload_dir.$upload_filename;
if (@move_uploaded_file ($_FILES['file']['tmp_name'], $upload_path.$upload_filename))
{
echo "<b>File is valid, and was successfully uploaded.</b>";
echo "Download Link:";
echo "<input type='text' size=80 onclick='this.select()' value='".$upload_link."'>";
echo "Download Link in HTML (for use in web sites, myspace, blogs, etc):";
echo "<input type='text' size=80 onclick='this.select()' value=\"<a href='".$upload_link."'>".$upload_link."</a>\">";
echo "Download Link in Forum code (for use in phpBB, vBulletin, etc):";
echo "<input type='text' size=80 onclick='this.select()' value='".$upload_link."'>";
echo "<a href='?".md5(microtime())."'>Upload another file</a>";
} else {
echo "<b>There some errors!</b>";
}
}
?>
</div></td></tr></table></body>
</html>[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
adlic
adlic
сообщение 15.6.2011, 17:32; Ответить: adlic
Сообщение #9


Да, лучше вместо:
[PHP]$upload_dir = "/uploads/".$_POST['cat']."";[/PHP]

Вставьте [PHP]$cat=trim(htmlspecialchars(mysql_real_escape_string($_POST['cat'])));
$upload_dir = "/uploads/".$cat."";
[/PHP]

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Требуется помощь по сайту на "ВордПресс"
Закрылся доступ в панель администратора
15 Tia2 2346 17.4.2024, 0:54
автор: diviner99
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыСостояние после ампутации - нужна помощь
благотворительный топик
49 vitvirtual 5875 1.4.2024, 5:23
автор: vitvirtual
Открытая тема (нет новых ответов) Нужна ли плоская структура категорий в ИМ?
1 noviktamw 1171 26.3.2024, 21:50
автор: c4p1t4l15t
Открытая тема (нет новых ответов) требуется помощь с themasoftware (Темапостером)
0 Taylor 623 16.3.2024, 18:41
автор: Taylor
Открытая тема (нет новых ответов) Нужна рассылка по емаил базе сео-студий
0 kasey7 682 2.3.2024, 23:13
автор: kasey7


 



RSS Текстовая версия Сейчас: 19.4.2024, 19:10
Дизайн