Jak wrzucić plik na serwer www bez logowania.

0

Witam.

W jaki sposób na serwerze www mogę zezwolić na zapis pliku za pomocą metody UploadFile() z klasy WebClient?

Mam coś takiego:

String uriString = "http://nazwaSerwera";
WebClient myWebClient = new WebClient();
string fileName = @"d:\test\test1.html";
byte[] responseArray = myWebClient.UploadFile(new Uri(uriString), "POST", fileName);

Jednak dostaje błąd:
System.Net.WebException: Serwer zdalny zwrócił błąd: (403) Zabronione.

W kliencie FTP ustawiłem chmod folderu gdzie chcę wrzucić plik na 777, ale to nie pomaga
c1932d2604.png

Z góry dziękuję za pomoc.

0

Jest wiele powodów dla których serwer może zwrócić 403. Masz dostęp do niego? Czy to jakiś dziwny który można zrobić online? Jeżeli to Twoja maszyna to zobacz co jest napisane w logach apache'a.

0

Jest to wykupiony hosting - dostępu do logów apache'a nie mam niestety.

0

Pokaż kod metody odbierającej ten plik.
No chyba, że takiej nie masz, to wtedy wrzucaj plik po FTP, a nie HTTP.

0

Pewnie tutaj pies pogrzebany bo metody odbierającej nie mam.

Możesz mi podpowiedzieć jak mogła by wyglądać, pod jakimi hasłami szukać?

0

A w jaki sposób zrobić to za pomocą php?
Bo rozumiem że można by wywoływać skrypt php podając w argumencie odwołanie do pliku, ale w jaki sposób zrobić to tak by wystarczyło podać adres folderu tak jak w przykładzie tj http://nazwaSerwera
Przykład mam stąd: http://www.java2s.com/Tutorials/CSharp/System.Net/WebClient/C_WebClient_UploadFile_String_String_.htm

1

Nie możesz wysłać pliku przez HTTP do folderu. Możesz wysłać plik pod adres, pod adresem znajduje się handler, który ten plik zapisze gdzieś.

Napisz lepiej, co dokładnie chcesz osiągnąć.

0

Chce w programie zrobić metodę wysyłająca plik na serwer, ale jeśli się da to bez uwierzytelniania (dlatego kombinuje tak a nie FTP).

0

A anonimowe FTP nie przejdzie?
Jakie technologie programowania obsługuje ten serwer?

0

Twój plik (np piosenka) jest zapisana na dysku jako ciąg bajtów. Ten właśnie ciąg bajtów musisz jakoś przesłać do servera żeby mógł on tam być zapisany. M. U. S. I. S. Z. Nie ważne czy zrobisz to ręcznie czy przez program, i nie pomogą też dziwne protokoły albo wysyłanie samej nazwy plików. Więc np takie coś

http://mojserv.pl/zapisz_plik.php?nazwa=C:\Users\Ja\piosenka.mp3
Nie zadziała. Powtarzam nie zadziała.

Jeżeli nie chcesz korzystać z żadnych protokołów (czyli z takich ustalonych sposobów komunikacji) to możesz otworzyć sobie plik (czyli te bajty faktycznie, a nie samą ścieżkę) i przesłać ją do servera, który to server (przez np plik w php) odbierze te bajty (tak jakby odbierał zwykłą zmienną) i zapisze je na dysku (Jak chcesz to zrobić przez stronę to chyba w HTML5 jest jakiś input do plików, więc on to wyśle za Ciebie; Ty byś musiał tylko zrobić plik który to odbierze i zapisze).

A jeżeli lubisz protokoły to skorzystaj z FTP. Pierdyliard linków w google.

1 użytkowników online, w tym zalogowanych: 0, gości: 1