il y a un moyen de changer le nom du fichier que nous avons téléchargé à notre « ~ Serveur/UserFolder » (par exemple) ..
je pensais vraiment renommer le fichier avant la commande .SaveAs, qui va être comme:
if (Request.Files != null)
{
var getmyfile = Request.Files["some_photo"];
try
{
if (getmyfile.FileName != "" && getmyfile.FileName != null && getmyfile.ContentLength > 0)
{
///Create Useruploads path.
var path = Server.MapPath("~/Useruploads" + "\\");
///Get file info that we gonna upload to server..
FileInfo TheFile = new FileInfo(path + Path.GetFileName(getmyfile.FileName));
///Note: i used Path.GetFileName(getmyfile.FileName) code cause getmyfile.FileName gives full path of that file..
if (TheFile.Exists)
{
///Seperate file name and extention..
var fname = Path.GetFileNameWithoutExtension(TheFile.Name);
var ext = TheFile.Extension;
var path2 = path + fname;
///As long as we got file names, same as in server..
while(new FileInfo(path2+ext).Exists)
{
///Add "-img" to its name..
path2 = path2 + "-img";
}
FileInfo ccc = new FileInfo(path2 + ext);
string f_art = ccc.Name.Replace(" ", "");///Clean space.. (Optional)
getmyfile.SaveAs(f_art);
somedb.some_photo = Path.GetFileName(f_art); ///Its not fart its file art lol!
}
else ///if file is not exist in our server..
{
var path3 = (path + Path.GetFileName(getmyfile.FileName));
FileInfo ccc = new FileInfo(path3);
string f_art = ccc.Name.Replace(" ", "");
getmyfile.SaveAs(f_art);
some.some_photo = Path.GetFileName(f_art);
}
}
}
catch(FileNotFoundException ex)
{
form.Set("lblStatus",ex.Message);
}
catch (Exception ex)
{
form.Set("lblStatus", ex.Message);
}
db.somedbs.InsertOnSubmit(somedb);
db.SubmitChanges();
return RedirectToAction("Index");
}
(en option) u peut également utiliser:
var f_art = System.Text.RegularExpressions.Regex.Replace(Path.GetFileNameWithoutExtension(TheFile.Name), "[^a-zA-Z]", "");
au lieu d'utiliser .Replacer (» », ""); mais dans ce cas, il nettoie les zones espacées et si vous utilisez le code là-haut, il nettoiera tous les caractères sauf A à Z, de A à Z, ce qui signifie qu'aucun nombre ne sera appliqué à ce nom ni aucun espace ou autre caractère entre A et Z ..
Je veux changer le nom du fichier téléchargé pas dans le nom de stockage du chemin du serveur – Domnic
pour chaque fichier de téléchargement je dois déclarer le nom – Domnic
@Domnic - Vous ne pouvez pas changer le 'FileUploadControl.FileName'. C'est ce qui vient du navigateur et de l'ordinateur qui télécharge le fichier. – Oded