Attachment через mysql

12
K
На сайте с 13.02.2010
Offline
1
760

Залил файл через ftp, через mysql запрос добавил следующую строку:

INSERT INTO `dle_static_files` (`id`, `static_id`, `name`, `onserver`, `author`, `date`, `dcount`) VALUES

(100,3,'100_file_name.zip ','100_file_name.zip ','keysdoc','1264805111',1);

Вроде бы все, но при загрузке не показывается размер файла + естественно при скачке архив поврежден (по 0 байт идут)

По идее строка должна быть такой

INSERT INTO `dle_static_files` (`id`, `static_id`, `name`, `onserver`, `author`, `date`, `dcount`) VALUES

(100,3,'100_file_name.zip ','xxxxxxxx_100_file_name.zip ','keysdoc','1264805111',1);

Может подскажете откуда берется xxxxxxxx и где прописывается

Спасибо

keysdoc добавил 13.02.2010 в 09:42

Нашел примерно куда записывается строка, но как прочитать PRIMARY и onserver не знаю

[Удален]
#1
keysdoc:
Нашел примерно куда записывается строка, но как прочитать PRIMARY и onserver не знаю

ВЫ ПОНИМАЕТЕ ЧТО ЭТО? создается впечатление что нет, я вам подскажу - К ВАШЕЙ ПРОБЛЕМЕ ЭТО НЕ ОТНОСИТСЯ.

keysdoc:
Может подскажете откуда берется xxxxxxxx и где прописывается

прописывается в запросе, который вы указали наверху, берется из файловой системы.

K
На сайте с 13.02.2010
Offline
1
#2

Кажись догадываюсь. Но точно не знаю. Индексы, которые облегчают поиск по базе. Мол когда запрос к файлу идет, чтоб не все базу сканировать.

Я понимаю что в отличие от меня вы люди высокого ума. Но помогите решить проблему

[Удален]
#3
keysdoc:
Мол когда запрос к файлу идет, чтоб не все базу сканировать.

вы правы, я конечно не удивлюсь, что эти индексы не используются длешкой, судя по их качеству кода и вот таким смешным местам

<script language='JavaScript' type="text/javascript">

function ChangeOption(selectedOption) {

document.getElementById('general').style.display = "none";
document.getElementById('security').style.display = "none";
document.getElementById('news').style.display = "none";
document.getElementById('comments').style.display = "none";
document.getElementById('optimisation').style.display = "none";
document.getElementById('files').style.display = "none";
document.getElementById('mail').style.display = "none";
document.getElementById('users').style.display = "none";
document.getElementById('imagesconf').style.display = "none";
document.getElementById('rss').style.display = "none";
document.getElementById('smartphone').style.display = "none";

if(selectedOption == 'general') {document.getElementById('general').style.display = "";}
if(selectedOption == 'security') {document.getElementById('security').style.display = "";}
if(selectedOption == 'news') {document.getElementById('news').style.display = "";}
if(selectedOption == 'comments') {document.getElementById('comments').style.display = "";}
if(selectedOption == 'optimisation') {document.getElementById('optimisation').style.display = "";}
if(selectedOption == 'files') {document.getElementById('files').style.display = "";}
if(selectedOption == 'mail') {document.getElementById('mail').style.display = "";}
if(selectedOption == 'users') {document.getElementById('users').style.display = "";}
if(selectedOption == 'imagesconf') {document.getElementById('imagesconf').style.display = "";}
if(selectedOption == 'smartphone') {document.getElementById('smartphone').style.display = "";}
if(selectedOption == 'rss') {document.getElementById('rss').style.display = "";}


}

</script>

поясню что самый веселый кусок кода здесь

if(selectedOption == 'general') {document.getElementById('general').style.display = "";}
if(selectedOption == 'security') {document.getElementById('security').style.display = "";}
if(selectedOption == 'news') {document.getElementById('news').style.display = "";}
if(selectedOption == 'comments') {document.getElementById('comments').style.display = "";}
if(selectedOption == 'optimisation') {document.getElementById('optimisation').style.display = "";}
if(selectedOption == 'files') {document.getElementById('files').style.display = "";}
if(selectedOption == 'mail') {document.getElementById('mail').style.display = "";}
if(selectedOption == 'users') {document.getElementById('users').style.display = "";}
if(selectedOption == 'imagesconf') {document.getElementById('imagesconf').style.display = "";}
if(selectedOption == 'smartphone') {document.getElementById('smartphone').style.display = "";}
if(selectedOption == 'rss') {document.getElementById('rss').style.display = "";}

который с легкостью заменяется 1 строкой

document.getElementById(selectedOption).style.display = "";
keysdoc:
P.S. Я понимаю что в отличие от меня вы люди высокого ума. Но помогите создать запрос в sql для добавления строк в
PRIMARY KEY (`id`),
KEY `static_id` (`static_id`),
KEY `onserver` (`onserver`),
KEY `author` (`author`)

это за вас делает база данных. вам сюда НИКАК не засунуть свои данные и НЕНАДО судя лезть грязными руками :) это чистое место, которым управляет только база.

bearman добавил 13.02.2010 в 11:28

судя по

if ($_REQUEST['area'] == "static")
$row = $db->super_query ( "SELECT name, onserver FROM " . PREFIX . "_static_files WHERE id ='$id'" );
else
$row = $db->super_query ( "SELECT name, onserver FROM " . PREFIX . "_files WHERE id ='$id'" );
$file = new download ( FILE_DIR . $row['onserver'], $row['name'], $config['files_force'], $config['files_max_speed'] );
define ( 'FILE_DIR', '../uploads/files/' );
$name = ($name == "") ? substr( strrchr( "/" . $path, "/" ), 1 ) : $name;
$name = explode( "/", $name );
$name = end( $name );

$file_size = @filesize( $path );

вы должны:

1. добавить файл запись в базу

2. положить файл в папку uploads/files/

раз у вас размер равен 0, а не надпись

if (! $row)
die ( "Access denied" );

Access denied

ТО!

1. строку в базе он находит

2. файл в системе не находит, или он недоступен для чтения аккаунтом веб сервера, из под которого выполняется ДЛЕ.

все, других проблем быть не может.

onserver - название файла в папке на диске.

bearman добавил 13.02.2010 в 11:28

ну вот, получилась небольшая лекция по debug'у говно-скриптов приложений :)

K
На сайте с 13.02.2010
Offline
1
#4

Жесткие вы ребята. В общем я ни хрена не понял из написанного т.к. по образованию врач.

Я так понимаю если я добавил данные для Attachment через Sql запрос, а залил файл тупо через ftp а не модуль загрузки файлов, то ничего у меня не выйдет. Жаль, но да ладно, спасибо за ответы. пойду высплюсь

[Удален]
#5
keysdoc:
то ничего у меня не выйдет

почему не выйдет? выйдет, если назвать правильно файл и сделать нормальый sql запрос :)

раз вы не увидели что вам доступ запрещен, то вы плохо залили файл

как у вас на фтп файл называется?

W
На сайте с 10.05.2009
Offline
114
#6

keysdoc вам сразу надо было сказать что заливаете файл и добавляете в базу движка дле.

Если вы не заметили, то при заливке файла на хостинг движок в начало к имени добавляет таймстамп (то что вы назхвали xxxxxxxxx). Советую попробывать сделать также.

И обезательно положить его uploads/files/

[Удален]
#7
wolfston:
то при заливке файла на хостинг движок в начало к имени добавляет таймстамп (то что вы назхвали xxxxxxxxx). Советую попробывать сделать также.

судя по коду проверок на это условие нет, без этого должно работать :)

K
На сайте с 13.02.2010
Offline
1
#8
wolfston:
keysdoc вам сразу надо было сказать что заливаете файл и добавляете в базу движка дле.

Если вы не заметили, то при заливке файла на хостинг движок в начало к имени добавляет таймстамп (то что вы назхвали xxxxxxxxx). Советую попробывать сделать также.
И обезательно положить его uploads/files/

естественно я заливал файлы в uploads/files/

Я добавлял xxxxxxxxx файлу, правда на шару (но количество цифр совпадала), даже добавлял таймстамп от других файлов, но все равно в значение размера файла показывалось просто b, нажимал на скачку файлов, файл загружается с тем же именем но размер 0 байт.

[Удален]
#9
keysdoc:
Я добавлял xxxxxxxxx файлу

если добавляете xxxxxx к файлу, то этот xxxxxx тоже должен в onserver значении учавствовать :)

K
На сайте с 13.02.2010
Offline
1
#10
bearman:
если добавляете xxxxxx к файлу, то этот xxxxxx тоже должен в onserver значении учавствовать :)

ну ребята 🚬 я же не совсем тупой такой )). Кароче разобрался со всем этим - спасибо. Дело было вот в чем

как я уже раньше говорил я добавлял различные значения xxxxxx но делал я их всегда типа 1000000001 - это фишка не катит, значение почему то должно быть не мее 126580хххх.

Всем еще раз спасибо - я счастлив! 🤪

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий