XxMichałxX Opublikowano 3 Maja 2009 Udostępnij Opublikowano 3 Maja 2009 Otóż dziś sobie przeglądam skrypty 39dll i jest dużo takich, które nie wiem jak działają. I mi mówiliście, że transfer pliku to po kolei bajty wysyłać.. i tu się chyba mylicie, a mianowicie (rym :)) : GML fileopen() fileclose() filewrite() fileread() filepos() filesetpos() filesize() Czyli twórca/y 39dll o tym pomyśleli - o transferze plików. Wie może ktoś jak się tego używa? Myślę, że chyba tak samo jak file_bin.. , ale nie wiem. No i jak ktoś się orientuje to niech powie jak to działa.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 3 Maja 2009 Udostępnij Opublikowano 3 Maja 2009 dllinit( 0, czy sockety przesylane, uzywanie w/w funkcji ); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Roki Opublikowano 3 Maja 2009 Udostępnij Opublikowano 3 Maja 2009 Nie dokładnie, to o co ci chodzi, ale masz skrypt na pobieranie z linku, sorry że angielskie wyjaśnienia :/ GML /* argument0 = url to download from argument1 = local file to save as returns the error code from the server. 200 is a succesful download. NOTE: urls with usernames and passwords do not work. */ var server, file, i, port, tcp, endloop, url, error; server = ""; file = "/" port = 80; i = 0; error = 200; if(string_pos("http://", argument0) == 1)argument0 = string_delete(argument0, 1,7) //get file part of url i = string_pos("/", argument0); if(i) { file = string_copy(argument0, i, string_length(argument0)-i+1); argument0 = string_delete(argument0, i, string_length(file)); } //get port part i = string_pos(":", argument0); if(i) { port = real(string_copy(argument0, 1, i-1)); argument0 = string_delete(argument0, 1, i); } //get server part server = argument0; //the code above interpretes the url into a server variable, file variable and port. tcp = tcpconnect(server, port, 0); if(!tcp)return false; setformat(tcp, 1, chr(13) + chr(10)); //set format to text mode to receive one line at a time. //send get request clearbuffer(); writechars("GET " + file+ " HTTP/1.1" + chr(13) + chr(10)); writechars("Host: " + server + chr(13) + chr(10)); writechars("Connection: close"+chr(13) + chr(10)); writechars("Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/x-alambik-script, application/x-alambik-alamgram-link, */*"+chr(13)+chr(10)); writechars("Accept-Language: en-us"+chr(13) + chr(10)); writechars("User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)"+chr(13) + chr(10)); sendmessage(tcp); //receive file header //interpret header for any errors. endloop = false; while(!endloop) { receivemessage(tcp); //receive one line i = readsep(" "); //read first word switch(i) { //check http error code case "HTTP/1.1": case "HTTP/1.0": error = real(readsep(" ")); if(error != 200 && error != 301) { closesocket(tcp); return error; } break; //if page moved than locate new page and download from it. case "Location:": if(error == 301) { closesocket(tcp); url = readsep(chr(13) + chr(10)); return downloadfile(url,argument1); } break; //if blank line (end of header) then exit loop case "": endloop = true break; } } setformat(tcp, 2); //turn off all formatting so we can receive file data. if(file_exists(argument1))file_delete(argument1); file = fileopen(argument1, 1); //start receiving file while(receivemessage(tcp, 50000) > 0) //receive 50000 bytes { filewrite(file); //write file chunk to file. } closesocket(tcp); fileclose(file); return 200; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się