Je travaille sur une application. Cette application devrait obtenir le CV des utilisateurs, de sorte que j'ai besoin d'un code pour vérifier si un fichier existe ou non.
J'utilise ASP.NET/C #.
Vous pouvez déterminer si un fichier spécifié existe à l'aide de la méthode Exists
de la classe File
dans l'espace de noms System.IO
:
bool System.IO.File.Exists(string path)
Vous pouvez trouver la documentation ici sur MSDN .
Exemple:
using System;
using System.IO;
class Test
{
public static void Main()
{
string resumeFile = @"c:\ResumesArchive\923823.txt";
string newFile = @"c:\ResumesImport\newResume.txt";
if (File.Exists(resumeFile))
{
File.Copy(resumeFile, newFile);
}
else
{
Console.WriteLine("Resume file does not exist.");
}
}
}
Pour vérifier si un fichier existe dans .NET, vous pouvez utiliser
System.IO.File.Exists (String)
if (File.Exists(Server.MapPath("~/Images/associates/" + Html.DisplayFor(modelItem => item.AssociateImage))))
{
<img src="~/Images/associates/@Html.DisplayFor(modelItem => item.AssociateImage)">
}
else
{
<h5>No image available</h5>
}
J'ai fait quelque chose comme ceci pour vérifier si une image existait avant de l'afficher.
La réponse simple est que vous ne pouvez pas - vous ne pourrez pas vérifier un fichier sur leur ordinateur à partir d’un site Web ASP, car cela présenterait un risque dangereux pour eux.
Vous devez leur donner un contrôle de téléchargement de fichier - et vous ne pouvez pas faire grand chose avec ce contrôle. Pour des raisons de sécurité, javascript ne peut pas vraiment y toucher.
<asp:FileUpload ID="FileUpload1" runat="server" />
Ils sélectionnent ensuite un fichier à télécharger et vous devez gérer tout fichier vide qu’ils pourraient envoyer côté serveur.
Je ne peux pas encore commenter, mais je voulais juste être en désaccord/clarifier avec erikkallen .
Vous ne devriez pas attraper l'exception dans la situation que vous avez décrite. Si vous saviez que le fichier devrait être là et en raison d'un cas exceptionnel, ce ne serait pas le cas, il serait acceptable d'essayer simplement d'accéder au fichier et de détecter toute exception qui se produit.
Dans ce cas, toutefois, vous recevez des entrées d'un utilisateur et vous avez peu de raisons de croire que le fichier existe. Ici, vous devriez toujours utiliser File.Exists ().
Je sais que c’est un cliché, mais vous ne devriez utiliser Exceptions que pour un événement exceptionnel et non pas comme partie intégrante du flux normal de votre application. Cela coûte cher et rend le code plus difficile à lire/à suivre.
Essaye ça:
string fileName = "6d294041-34d1-4c66-a04c-261a6d9aee17.jpeg";
string deletePath= "/images/uploads/";
if (!string.IsNullOrEmpty(fileName ))
{
// Append the name of the file to previous image.
deletePath += fileName ;
if (File.Exists(HttpContext.Current.Server.MapPath(deletePath)))
{
// deletevprevious image
File.Delete(HttpContext.Current.Server.MapPath(deletePath));
}
}
Vous pouvez utiliser:
System.IO.File.Exists(@"c:\temp\test.txt");
En plus d'utiliser File.Exists()
, vous feriez mieux d'essayer simplement d'utiliser le fichier et de capturer toute exception levée. Le fichier peut ne pas s'ouvrir car il n'existe pas encore.
Ces réponses supposent toutes que le fichier que vous vérifiez se trouve du côté serveur. Malheureusement, il n’existe aucun moyen sûr de s’assurer qu’un fichier existe côté client (par exemple, si vous téléchargez le CV). Bien sûr, vous pouvez le faire en Javascript mais vous n’allez toujours pas être sûr à 100% du côté serveur.
La meilleure façon de gérer cela, à mon avis, est de supposer que l'utilisateur va réellement sélectionner un fichier approprié pour le téléchargement, puis de faire le travail que vous devez faire pour vous assurer que le fichier téléchargé correspond à vos attentes (indice - supposez que l'utilisateur essaye d’empoisonner votre système de toutes les manières possibles avec son apport)
Vous avez écrit asp.net - cherchez-vous à télécharger un fichier?
si vous pouvez utiliser le code HTML
<type d'entrée = "fichier" ...
J'ai écrit ce code en vb et il fonctionne bien pour vérifier si un fichier existe ou non pour le contrôle fileupload. l'essayer
FOR VB CODE =============
If FileUpload1.HasFile = True Then
Dim FileExtension As String = System.IO.Path.GetExtension(FileUpload1.FileName)
If FileExtension.ToLower <> ".jpg" Then
lblMessage.ForeColor = System.Drawing.Color.Red
lblMessage.Text = "Please select .jpg image file to upload"
Else
Dim FileSize As Integer = FileUpload1.PostedFile.ContentLength
If FileSize > 1048576 Then
lblMessage.ForeColor = System.Drawing.Color.Red
lblMessage.Text = "File size (1MB) exceeded"
Else
Dim FileName As String = System.IO.Path.GetFileName(FileUpload1.FileName)
Dim ServerFileName As String = Server.MapPath("~/Images/Folder1/" + FileName)
If System.IO.File.Exists(ServerFileName) = False Then
FileUpload1.SaveAs(Server.MapPath("~/Images/Folder1/") + FileUpload1.FileName)
lblMessage.ForeColor = System.Drawing.Color.Green
lblMessage.Text = "File : " + FileUpload1.FileName + " uploaded successfully"
Else
lblMessage.ForeColor = System.Drawing.Color.Red
lblMessage.Text = "File : " + FileName.ToString() + " already exsist"
End If
End If
End If
Else
lblMessage.ForeColor = System.Drawing.Color.Red
lblMessage.Text = "Please select a file to upload"
End If
POUR CODE C # ======================
if (FileUpload1.HasFile == true) {
string FileExtension = System.IO.Path.GetExtension(FileUpload1.FileName);
if (FileExtension.ToLower != ".jpg") {
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Text = "Please select .jpg image file to upload";
} else {
int FileSize = FileUpload1.PostedFile.ContentLength;
if (FileSize > 1048576) {
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Text = "File size (1MB) exceeded";
} else {
string FileName = System.IO.Path.GetFileName(FileUpload1.FileName);
string ServerFileName = Server.MapPath("~/Images/Folder1/" + FileName);
if (System.IO.File.Exists(ServerFileName) == false) {
FileUpload1.SaveAs(Server.MapPath("~/Images/Folder1/") + FileUpload1.FileName);
lblMessage.ForeColor = System.Drawing.Color.Green;
lblMessage.Text = "File : " + FileUpload1.FileName + " uploaded successfully";
} else {
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Text = "File : " + FileName.ToString() + " already exsist";
}
}
}
} else {
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Text = "Please select a file to upload";
}
Cela peut vous aider.
try
{
con.Open();
if ((fileUpload1.PostedFile != null) && (fileUpload1.PostedFile.ContentLength > 0))
{
filename = System.IO.Path.GetFileName(fileUpload1.PostedFile.FileName);
ext = System.IO.Path.GetExtension(filename).ToLower();
string str=@"/Resumes/" + filename;
saveloc = (Server.MapPath(".") + str);
string[] exts = { ".doc", ".docx", ".pdf", ".rtf" };
for (int i = 0; i < exts.Length; i++)
{
if (ext == exts[i])
fileok = true;
}
if (fileok)
{
if (File.Exists(saveloc))
throw new Exception(Label1.Text="File exists!!!");
fileUpload1.PostedFile.SaveAs(saveloc);
cmd = new SqlCommand("insert into candidate values('" + candidatename + "','" + candidatemail + "','" + candidatemobile + "','" + filename + "','" + str + "')", con);
cmd.ExecuteNonQuery();
Label1.Text = "Upload Successful!!!";
Label1.ForeColor = System.Drawing.Color.Blue;
con.Close();
}
else
{
Label1.Text = "Upload not successful!!!";
Label1.ForeColor = System.Drawing.Color.Red;
}
}
}
catch (Exception ee) { Label1.Text = ee.Message; }