Ich habe ein Problem beim Hochladen einer Datei in FTP-Server. Wenn ich den FileZilla Server auf meinem Computer starte (127.0.0.1), werden die Bilddateien erfolgreich hochgeladen. Aber ich führe FileZilla Server auf einem anderen Computer im selben Netzwerk (10.0.1.25). Ich kann Verzeichnisse auf diesem Computer erstellen, aber ich kann die Bilddatei nicht hochladen, obwohl mein Benutzer die volle Kontrolle über diesen Computer hat.FTP-Datei-Upload im lokalen Netzwerk C#
public bool Upload(Stream srcStream, string dstFilePath)
{
Create FtpWebRequest object from the Uri provided
FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(serverUri + dstFilePath));
reqFTP.Credentials = credential;
reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
reqFTP.UseBinary = true;
reqFTP.Proxy = null;
reqFTP.UsePassive = false;
reqFTP.KeepAlive = false;
reqFTP.ContentLength = srcStream.Length;
byte[] buff = new byte[UPLOAD_DOWNLOAD_BUFFER_SIZE];
int contentLen;
// Stream to which the file to be upload is written
using (Stream dstStream = reqFTP.GetRequestStream())
{
// Read from the file stream 2kb at a time
contentLen = srcStream.Read(buff, 0, UPLOAD_DOWNLOAD_BUFFER_SIZE);
// Till Stream content ends
while (contentLen != 0)
{
// Write Content from the file stream to the FTP Upload Stream
dstStream.Write(buff, 0, contentLen);
contentLen = srcStream.Read(buff, 0, UPLOAD_DOWNLOAD_BUFFER_SIZE);
}
dstStream.Close();
}
}
// Get the response to the upload request.
bool ret;
FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
// ret = (response.StatusCode == FtpStatusCode.ClosingData); //
response.Close();
ret = (GetFileSize(dstFilePath) == srcStream.Length);
return ret;
}
Wenn i die Zeile 9 bis reqFTP.UsePassive = true ändern, gibt der Server den (227 eingeben Passiv-Modus (h1, h2, h3, h4, p1, p2)). Jetzt gibt es zurück (500) Syntaxfehler, Befehl nicht erkannt. Was wird das Problem? Danke
Ich habe mein Antivirenprogramm gestoppt. Dann wird die Datei übertragen. –