Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057

Загрузка на dropbox (пордска!= решение)

02.09.2018, 10:32. Показов 1191. Ответов 4

Студворк — интернет-сервис помощи студентам
Доброго времени суток, уважаемые форумчане!
Недавно, столкнулся с задачей написания графического приложения на python(основная задача приложения-загрузка файлов на dropbox, версия api - последняя)
Код приложения, хоть и скромного но готов, завис на последнем этапе(загрущкаа файлов на сервер)
Вопрос в том, что делаю не так.
Прорсьба сильно ногами не бить,изучаю python , равно как и pyqt5, не давно
Заранее спасибо всем откликнувшимся
Код интерфейса:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from PyQt5 import QtCore, QtGui, QtWidgets
 
class Ui_lwo(object):
    def setupUi(self, lwo):
        lwo.setObjectName("lwo")
        lwo.resize(897, 253)
        self.formLayoutWidget = QtWidgets.QWidget(lwo)
        self.formLayoutWidget.setGeometry(QtCore.QRect(0, 0, 894, 249))
        self.formLayoutWidget.setObjectName("formLayoutWidget")
        self.formLayout = QtWidgets.QFormLayout(self.formLayoutWidget)
        self.formLayout.setContentsMargins(0, 0, 0, 0)
        self.formLayout.setObjectName("formLayout")
        self.label = QtWidgets.QLabel(self.formLayoutWidget)
        self.label.setObjectName("label")
        self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.formLayout.setLayout(1, QtWidgets.QFormLayout.LabelRole, self.horizontalLayout_2)
        self.listWidget = QtWidgets.QListWidget(self.formLayoutWidget)
        self.listWidget.setObjectName("listWidget")
        self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.listWidget)
        self.pushButton = QtWidgets.QPushButton(self.formLayoutWidget)
        self.pushButton.setObjectName("pushButton")
        self.formLayout.setWidget(2, QtWidgets.QFormLayout.SpanningRole, self.pushButton)
        self.lineEdit = QtWidgets.QLineEdit(self.formLayoutWidget)
        self.lineEdit.setObjectName("lineEdit")
        self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.lineEdit)
 
        self.retranslateUi(lwo)
        QtCore.QMetaObject.connectSlotsByName(lwo)
 
    def retranslateUi(self, lwo):
        _translate = QtCore.QCoreApplication.translate
        lwo.setWindowTitle(_translate("lwo", "загрузчик"))
        self.label.setText(_translate("lwo", "токен"))
        self.pushButton.setText(_translate("lwo", "Найти файлы"))
Код оснолвного агоритма:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import iface
import  sys
import os
from PyQt5 import QtWidgets
import  dropbox
from PyQt5.QtCore import QFileInfo
 
 
 
class ld(QtWidgets.QWidget,iface.Ui_lwo):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.lineEdit.setFocus()
        self.pushButton.clicked.connect(self.test)
        self.listWidget.itemDoubleClicked.connect(self.load)
    def test(self):
        self.listWidget.clear()
        mdr=QtWidgets.QFileDialog.getExistingDirectory(self, "что загрузить?")
        global put
        put = os.path.abspath(mdr)
        if mdr:
            for i in(os.listdir(mdr)):
 
                self.listWidget.addItem(i)
        return  put
 
    def load(self,item):
        tk=self.lineEdit.setText(str(""))
        mfile = self.listWidget.currentItem().text()  # файл
        nput = put + '\\' + mfile
        print(nput)
        wd = '/upload.'+mfile
        fp = open(nput,'rb')
        response = tk.files_upload(fp.read(), wd)#вот тут происходит ошибка
        print('uploaded:', response)# вот тут происходит ошибка  
        fp.close()
        print(wd)
 
def main():
    app=QtWidgets.QApplication(sys.argv)
    wnd=ld()
    wnd.show()
    app.exec_()
if __name__ == '__main__':
    main()
Код прототипа, в котором все работает правильно, причины сего не пойму.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
import  dropbox
def loader(tks):
    print(tks)
    tk = dropbox.Dropbox(tks)
    wf = 'working-draft.txt'  # файл
    wd = '/upload.working-draft.txt'  # на дропбокс он называется...
    fp = open(wf, 'rb')
    response = tk.files_upload(fp.read(), wd)
    print('uploaded:', response)
    fp.close()
 
if __name__ == '__main__':
    tks = 'токен'
    loader(tks)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.09.2018, 10:32
Ответы с готовыми решениями:

Загрузка файла в DropBox
Нужна помощь в написании функции загрузки файла на сервер DropBox. На входе функция получает путь файла. Начал смотреть в сторону...

Загрузка файла на dropbox
Пересмотрел кучу вариантов ничего не выходит. Я новичок в программировании и может где-то что то забываю или не знаю. Я взял DropNet...

Загрузка файла на Dropbox
Доброго времени суток! Возник вопрос: как можно залить файл на DropBox? Или на другой простой файлообменник...

4
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
02.09.2018, 11:34
В прототипе переменная tk

Python
1
tk = dropbox.Dropbox(tks)
а в программе

Python
1
tk=self.lineEdit.setText(str(""))
1
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
02.09.2018, 12:15  [ТС]
ТабуретY, это сделанно так, потому, что в простотипе, tks - вписанный токен, а в программе, tk=self.lineEdit.setText(str("тут был токен но ошибка сохранялась"))- возможность для ввода этого идентификатора пользователем.
self- доступ к классу и далее к элементу, вроде все логичнр, а как все же исправить ошибку?

Добавлено через 3 минуты
Цитата Сообщение от Dax Посмотреть сообщение
tk=self.lineEdit.setText(str("тут был токен но ошибка сохранялась"))
? вроде бы- то же переменная, но значение передает в класс

Добавлено через 27 минут
Исправил
Python
1
tk = dropbox.Dropbox(self.lineEdit.text())
, но все равно не работтает, подскажите хоть в каком направлении грызть матчасть.
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
02.09.2018, 14:48
Цитата Сообщение от Dax Посмотреть сообщение
Исправил
PythonВыделить код
1
tk = dropbox.Dropbox(self.lineEdit.text())
, но все равно не работтает, подскажите хоть в каком направлении грызть матчасть.
Ошибка какая?
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
02.09.2018, 14:59  [ТС]
Программа просто зависает, выдавая аномальный код завершения и диалог аварийного закрытия

Добавлено через 39 секунд
Зависаетименно на шаге загрузки файла

Добавлено через 5 минут
То есть, если исключить прочтение файла в режим rb и получение ответа от dropbox, кож завершения сразу 0, но программа не работает, в чем фокус - понимаб не совсем, подозрительные строки помечены в коде основного алгоритма комментариями
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.09.2018, 14:59
Помогаю со студенческими работами здесь

Загрузка файла excel на хостинги (dropbox ; OneDrive)
Я конечно понимаю, в лицензионных версиях (и крякнутых), можно загрузить файл excel на Dropbox и Onedrive с помощью кнопок в самой...

Загрузка на Dropbox - Ошибка: Обнаружена неизвестная ошибка сервера
Добрый день всем! Возможно не в тот раздел запостила тему, не знаю, куда правильно отнести мой вопрос. Пытаюсь в который раз...

DropBox
Верно ли утверждение, что у Dropbox нет возможности синхронизации папки в реальном времени. Когда запускаешь программу, надо выбрать...

C# и Dropbox
Кто-то работал с Dropbox через C#? Задача - запускать синхронизацию папки.

dropbox
Ребят помогайте, через какие порты работает dropbox, и можно как то установить определённый порт! Это нужно сделать для пользователей у...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru