Autor Wątek: [utlFTP] Wysyłanie plików na serwer FTP  (Przeczytany 11047 razy)

0 Użytkowników i 1 Gość przegląda ten wątek.

Offline mucha

  • Senior Developer
  • Młodzież
  • *
[utlFTP] Wysyłanie plików na serwer FTP
« dnia: Listopad 15, 2010, 07:10:47 am »
Wkurzony tym, że po raz któryś tam z rzędu FTPsender nie chciał współpracować z moich FTP'em i tym, że w ogóle był jakiś kulawy, postanowiłem napisać własną wtyczkę.

Wtyczka wysyła plik na serwer FTP podany w konfiguracji, a link do niego przesyła rozmówcy (wow). Różnice w stosunku do FTPsendera (wer. 1.1.0.0):
  • pozycja w menu zamiast przycisku, nasza belka znów jest czysta <jupi>
  • okienko postępu przesyłania pliku
  • możliwość anulowania transferu
  • komunikaty o błędach które wystąpiły w czasie transferu
  • urlEncode nazw plików
  • jeśli plik na serwerze istnieje to nie zostanie nadpisany, do jego nazwy zostanie dodany czas unix'owy
  • usuwanie wszystkich plików z serwera (w menu Narzędzia)
  • możliwość wysłania kilku plików na raz


x86: http://www.alset.pl/Maciek/utlFTP-Win32.zip
x64: http://www.alset.pl/Maciek/utlFTP-x64.zip

Źródła:
https://github.com/mmuszkow/utlFTP

Coś dla wtyczkopisarzy:
#ifndef __UTL_FTP_API_H__
#define __UTL_FTP_API_H__

namespace utlFTP
{
struct wtwFtpFile
{
/** struct size */
int structSize;
/** path to file */
wchar_t filePath[260];
/** Contact to which the file will be sent, only contactID,
  * netClass and netId (sometimes called sID) are needed
  */
wtwContactDef contact;
/** bit field */
DWORD flags;
};

/* if flag set - filePath has format "directory<NUL>file1<NUL>file2<NUL>...lastfile<NUL><NUL>" */
static const DWORD WTW_FTP_MULTIFILE = 0x80000000;
/* if flag set - dialog with progress will not be shown */
static const DWORD WTW_FTP_NODIALOG = 0x40000000;
/* if flag set - links won't be sent neither to chat window nor to input window */
static const DWORD WTW_FTP_NOLINK = 0x20000000;

/** wParam = wtwFtpFile*, lParam = NULL */
static const wchar_t WTW_FTP_SEND_FILE[] = L"utlFTP/sendFile";
};

#endif // __UTL_FTP_API_H__
« Ostatnia zmiana: Kwiecień 04, 2014, 19:18:22 pm wysłana przez mucha »

Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #1 dnia: Listopad 15, 2010, 07:56:47 am »
Próba wysłania czegokolwiek na serwer neo kończy się komunikatem Timeout.

Wersję x64 przewidujesz?

Aha, wyłączenie WTW podczas gdy wtyczka próbuje się połączyć z serwerem wywala komunikator.

Offline jareQ

  • Narybek
  • *
    • Tawerna.biz
Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #2 dnia: Listopad 16, 2010, 08:57:26 am »
Świetna robota mucha! :) Niestety muszę poczekać na x64 mam nadzieję, ze niebawem się pojawi.
 Jak dla mnie to jedna z najważniejszych wtyczek :)
buttie skoro mucha napisał, że na razie tylko x86 to ma w planach wydanie wersji x64.

Tak więc czekamy z niecierpliwością ;)
"Wszystkie sekrety zostaną poznane, kluczem jest czas..." | Tw!st - Mój zestaw dźwięków.
Tawerna.biz

Offline luk47

  • Młodzież
  • **
Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #3 dnia: Listopad 16, 2010, 22:24:55 pm »
Naprawdę świetna wtyczka! ;)

Jest jednak spory problem z podkreśleniami/spacjami/myślnikami/itp. w nazwach plików.

Wrzucam na serwer przez klienta FTP np. plik 2_log.pdf, pod taką nazwą zastaję go na serwerze i taka też nazwa widnieje w działającym linku.

Robię to samo tyle, że przez utlFTP, na serwerze jest widoczny jako 2%5flog.pdf, taka nazwa widnieje również w linku zwróconym przez wtyczkę, który to zresztą nie działa. Poprawny link który otwiera się w przeglądarce zawiera w nazwie 2%255flog.pdf.

Jakiś problem z kodowaniem? Mam nadzieję, że łatwy do rozwiązania.
Człowiek jest wolny całkowicie lub nie jest wolny wcale.

Offline mucha

  • Senior Developer
  • Młodzież
  • *
Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #4 dnia: Listopad 17, 2010, 07:37:28 am »
Głupi błąd, poprawiłem, nowa wersja (też x64) na serwerze. Oprócz tej poprawki dodane także grzeczne zamykanie trwających połączeń (czyli usunięcie tego co do tej pory przesłaliśmy, abort, logout) przy zamykaniu WTW.

Offline inzaghi89

  • Młodzież
  • **
    • keepmind.eu
Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #5 dnia: Listopad 17, 2010, 09:56:30 am »
Niestety z wtyczką utImage nie działa.

Offline mucha

  • Senior Developer
  • Młodzież
  • *
Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #6 dnia: Listopad 17, 2010, 13:43:17 pm »
Tzn jak nie działa? Przycisk FTP w oknie do wysyłania obrazków jest szary? Czy nie dochodzi, czy może jakiś błąd się wyświetla? Bo u mnie działa...

Offline luk47

  • Młodzież
  • **
Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #7 dnia: Listopad 17, 2010, 15:40:23 pm »
U mnie też normalnie działają obie wtyczki, wersja x86 (Win XP i 7). Przy okazji dzięki za poprawę błędu ;)
Człowiek jest wolny całkowicie lub nie jest wolny wcale.

Offline krys87

  • Narybek
  • *
Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #8 dnia: Listopad 17, 2010, 17:05:50 pm »
przy wyslanym linku data jest niewlasciwa a mianowicie wyglada tak "01/01/1970 01:00:00" i nie zmienia sie. :) czy wtyczka moze jeszcze wklejac link w miejsce wpisywania tekstu a nie w okno rozmowy, bo to do zludzenia wyglada jakby link zostal wyslany, przy zaznaczonej opcji "pokazuj linki w oknie rozmowy,ale ich nie wysylaj"

Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #9 dnia: Listopad 17, 2010, 17:13:59 pm »
wtyczka chyba fajna
chyba, bo ja coś chyba źle wpisuję bo mi wyskakuje
Not Found

The requested URL /~tomi/pliki/w.jpg was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2.2.3 (Debian) mod_python/3.2.10 Python/2.4.4 PHP/5.2.0-8+etch16 mod_ssl/2.2.3 OpenSSL/0.9.8c mod_perl/2.0.2 Perl/v5.8.8 Server at www.galileusz.pl Port 80

host galileusz.pl
katalog na servie pliki
link www.galileusz.pl/~tomi/pliki

Offline zhvir

Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #10 dnia: Listopad 17, 2010, 17:24:47 pm »
mogę się mylić ale nie podoba mi się znak ~
Chciałbym być zawsze niewinny i prawdziwy, chciałbym być zawsze pełen wiary i nadziei...

Offline mucha

  • Senior Developer
  • Młodzież
  • *
Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #11 dnia: Listopad 17, 2010, 18:11:26 pm »
krys87: ta data będzie poprawiona, a co do drugiego to dzięki temu linki są "klikalne" (w oknie wpisywania nie są), ewentualnie mogę zmienić żeby się pokazywało jako powiadomienie (o ile też będzie "klikalne")

svistu: ~ jest ok, masz problem z adresem serwera, samo kliknięcie w http://www.galileusz.pl/~tomi/pliki daje błąd 404 tak jakby katalog nie istniał

Offline krys87

  • Narybek
  • *
Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #12 dnia: Listopad 17, 2010, 18:38:41 pm »
krys87: ta data będzie poprawiona, a co do drugiego to dzięki temu linki są "klikalne" (w oknie wpisywania nie są)
chyba, ze takie bylo Twoje zalozenie dzialania tej opcji. osobiscie czy link jest klikalny bądź nie dla mnie nie ma wiekszego znaczenia, bo przykladowo kiedy wysyla sie link nie ma raczej potrzeby sprawdzac czy on dziala lub czy da sie go pobrac, gdy transfer sie powiodl. a mozna to sprawdzic jak juz sie wysle do rozmowcy klikajac na link. a gdyby link pojawial sie w miejscu wprowadzania tekstu to moglbym np w jakis sposob go edytowac albo dopisac do wiadomosci tresc za jednym razem ;p oczywiscie moze to byc jak najbardziej w formie dodatkowej opcji.  :)

Offline inzaghi89

  • Młodzież
  • **
    • keepmind.eu
Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #13 dnia: Listopad 18, 2010, 04:52:04 am »
Tzn jak nie działa?
W ogóle nie mam przycisku FTP w oknie od utImage. Win7 x64.

Offline the_mask

  • Młodzież
  • **
Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #14 dnia: Listopad 18, 2010, 04:57:00 am »
A to taki przycisk był? Bo chyba nie, jedynie w prawokliku w Wyślij... było i jest wyślij zrzut ekranu...

Offline inzaghi89

  • Młodzież
  • **
    • keepmind.eu
Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #15 dnia: Listopad 18, 2010, 05:00:45 am »
Tak, był taki przycisk w utimage na dole.

Offline mucha

  • Senior Developer
  • Młodzież
  • *
Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #16 dnia: Listopad 19, 2010, 07:37:16 am »
Ktoś jeszcze ma ten sam problem? Na serwerze nowa wersja, zmiany:
  • przejście na WinInet, dzięki temu wtyczka zajmuje 10x mniej i szybciej działa
  • transfer średni został zamieniony na chwilowy, dodany wykres prędkości
  • poprawiony ten błąd z datą, prosiłbym o sprawdzenie tych którzy mieszkają w innej niż polska strefie czasowej czy godzina jest dobra
Co do tej opcji "Nie wysyłaj..." to nie da się na razie dodać tekstu do okna wpisywania przy pomocy API, ale będę pracował nad tym, żeby się dało.

edit:
@down żeby nie wydawać paru wersji jednego dnia, będzie poprawione jutro
« Ostatnia zmiana: Listopad 19, 2010, 13:41:11 pm wysłana przez mucha »

Offline krys87

  • Narybek
  • *
Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #17 dnia: Listopad 19, 2010, 13:16:45 pm »
nie dziala mi w tej nowej wersji funkcja usuwania plikow z serwera ftp. nie ma zadnego komunikatu/zapytania o usuniecie plikow, ani tego nie wykonuje

jesli nie widzisz przeszkod, można tak dodac jeszcze do opcji liste rozwijalna ze skonfigurowanymi profili serwerow ftp
« Ostatnia zmiana: Listopad 20, 2010, 15:11:05 pm wysłana przez krys87 »

Offline mucha

  • Senior Developer
  • Młodzież
  • *
Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #18 dnia: Listopad 21, 2010, 08:36:33 am »
Naprawdę korzystasz z paru serwerów FTP? Już teraz wtyczkę możesz "sklonować" (czyli po prostu skopiować plik .plug). Niestety musisz jeszcze dodatkowo, otworzyć taki nowy plik .plug w jakimś hexedytorze, znaleźć GUID wtyczki ({80436411-48b4-4a8b-9cd3-e7740297f2fe}) i zmienić go na jakiś inny (wystarczy jedna literka), nie chce mi się tłumaczyć dlaczego.

Na serwerze nowa wersja, zmiany:
  • poprawiony błąd z usuwaniem wszystkich plików z serwera
  • nowe API dla innych wtyczek (pierwszy post)
  • w sumie było już w poprzedniej wersji, ale zapomniałem o tym wspomnieć, możliwość wysłania kilku plików na raz
  • możliwość dodawania linka do okna wpisywania zamiast do okna czata

Offline krys87

  • Narybek
  • *
Odp: [utlFTP] Wysyłanie plików na serwer FTP
« Odpowiedź #19 dnia: Listopad 21, 2010, 10:11:11 am »
Naprawdę korzystasz z paru serwerów FTP?
z jednej strony darmowe serwery ftp maja to do siebie ze maja limity rozmiaru na pojedynczy plik 6-10mb i wiele tam niedogodnosci np blokada na pliki zip, rar, exe, czasem i nie chca sie laczyc, jedynie atutem jest duza pojemnosc, jaka mozna wykorzystac. a wczoraj mialem taka sytuacje, ze nagle serwer gadu zaczal blokowac linki z domena cba.pl (pewnie na jakis czas, sprawdzilem na dwoch numerach gg uzywajac GG10), takze musialem zmienic serwer na inny. co prawda mam takie 3 serwery ftp, ale faktycznie w chwili obecnej uzywam jednego prv.pl ;p stąd tez pomyslalem, ze takie cos mozna dodac jak lista zdefiniowanych s. ftp, ale jak najbardziej to bylo w formie propozycji ;p

btw. dzieki za ta opcje  - dodawania linka do okna wpisywania :)

jeszcze maly drobiazg, gdy wysylamy kilka plikow, pomiedzy linkami nie robi odstepu przy wklejaniu ich do okna wpisywania