Wie um zu überprüfen, ob FileUpload-Steuerelement leer ist?

Verwende ich LINQ, um abrufen von Daten aus der Datenbank, der name der variable relative link ist "service".

den upDocument ist die Id von einem FileUpload-control.

Ziel ist es, löschen Sie die alte Datei vor dem hochladen einen neuen.
Dies ist der code, den ich kam mit:

if ((service.image_url != null || service.image_url != "") &&
    (upDocument.FileName.Length != 0 || upDocument.PostedFile.ToString() != ""))
{
     if (File.Exists(System.Web.HttpContext.Current.Server.MapPath(service.image_url)))
     {
          File.Delete(System.Web.HttpContext.Current.Server.MapPath(service.image_url));
     }
}

Das problem, das ich habe, ist, dass, obwohl nichts geladen wird, um den FileUpload die Datei noch gelöscht werden. Ich machte einen Haltepunkt und es ausprobiert... und im Gegensatz zu dem, was ich erwartet hatte, das mit dem Namen.Länge ist nicht 0, und die postedFile.ToString() ist nicht "".

Wie kann ich eine korrekte Validierung?

  • Ihre erste Bedingung (service.image_url) sollte die Verwendung ein und (&&), nicht ein oder (||). Allerdings, sollte es tatsächlich rufen String.IsNullOrEmpty.
  • Übrigens upDocument.PostedFile.ToString() immer "HttpPostedFile" weil die HttpPostedFile Klasse nicht überschreiben ToString. Daher gibt es keinen Punkt in der Prüfung. Sie sollten überprüfen HasFile statt.
InformationsquelleAutor Marco | 2009-10-08
Schreibe einen Kommentar