PDA

View Full Version : آموزش: تغییر نام فایل های هم نام در هنگام آپلود



abadanboy
پنج شنبه 17 آبان 1386, 19:00 عصر
یه چند تا از دوستان خواستار تغییر نام فایل های هم نام توسط خود برنامه شده بودند من اینو نوشتم اگه بهتر کسی داره بزاره
برنامه زیر به این صورت هست که اگه فایل هم نام رو پیدا کرد اونو به این صورت تغییر نام میده
file.jpg
file(1).jpg
file(2).jpg
مثل تغییر نام فایل ها تو موبایل
موفق باشید

C#

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
public partial class _Default : System.Web.UI.Page
{
int i = 0;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
int s=fw1.FileName.LastIndexOf('.');
string type = fw1.FileName.Substring(s);
string name = fw1.FileName.Substring(0,s);
bindname(name,name,type);

}
void bindname(string m,string n,string t) {
if (File.Exists(MapPath("pic\\") + m+t))
{
i++;
m = n + "(" + i + ")";
bindname(m,n,t);
}
else
{
fw1.PostedFile.SaveAs(MapPath("pic\\")+m+t);
}
}
}

Asp.net

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>

<asp:fileupload ID="fw1" runat="server"></asp:fileupload>
<asp:Button ID="Button1" runat="server"
Text="Button" OnClick="Button1_Click" />
</div>
</form>
</body>
</html>

h.alizadeh
دوشنبه 21 آبان 1386, 07:50 صبح
سلام،
ممنون از روشی که دادید
اما برای من از این خطا رو داد:


Compiler Error Message: BC30451: Name 'File' is not declared



if (File.Exists(MapPath("Image\\") + m+t)) then


من از asp.net1.1 استفاده می کنم ....

abadanboy
دوشنبه 21 آبان 1386, 12:47 عصر
من با این مشکل مواجه نشدم از تبدیل کدهات به vb اطمینان پیدا کن شاید تو این مورد مشکل به وجود اومده باشه

abolfazl585
جمعه 16 آذر 1386, 20:11 عصر
به جای File از System.Io.File استفاده کن Ok میشه.

mahdi_farhani
جمعه 16 آذر 1386, 23:34 عصر
با تشکر از دوست عزیزمون از پست زیباش ، ولی این پست با Ajax مشکل پیدا میکنه ، بهتره بود به جای ذخیره کردن اون

fw1.PostedFile.SaveAs(MapPath("pic\\")+m+t);

یک خروجی رشته ایی به عنوان مسیر و نام فایل بدید ، تا اگر خواستید از کنترلی و یا هرچیزی که با Ajax سازگار باشه بتونید استفاده کنید .

hobab-theme
چهارشنبه 03 تیر 1388, 10:53 صبح
دوستانی که اینو به VB تبدیل کردن اگه امکان داره کد اون رو هم قرار بدن
ممنون

sahele_sheni
شنبه 28 شهریور 1388, 13:33 عصر
Imports System
Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
Imports System.IO
Public Partial Class _Default
Inherits System.Web.UI.Page
Private i As Integer = 0
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim s As Integer = fw1.FileName.LastIndexOf("."c)
Dim type As String = fw1.FileName.Substring(s)
Dim name As String = fw1.FileName.Substring(0, s)

bindname(name, name, type)
End Sub
Private Sub bindname(ByVal m As String, ByVal n As String, ByVal t As String)
If File.Exists(MapPath("pic\") + m + t) Then
i += 1
m = (n & "(") + i & ")"
bindname(m, n, t)
Else
fw1.PostedFile.SaveAs(MapPath("pic\") + m + t)
End If
End Sub
End Class