Фев 24 2011

Upload файлов с уникальными именами в ASP.NET

Category: ASPgizmaz @ 9:32 пп

запрос

# < HTML>
# < HEAD>
# < Title>Unique Upload< /Title>
# < /HEAD>
# < BODY>
# < form enctype=»multipart/form-data» runat=»server»>
# < asp:Label id=»lblMessage» runat=»server» />
# Файл:< br>
# < input id=»fileInp» type=»file» runat=»server»>< br>
# < asp:button text=»Загрузить» OnClick=»Upload_Click» runat=»server» />
# < /form>
# < /BODY>
# < /HTML>

обработчик

< %@ Page Language="C#" %> 

< script language="C#" runat="server"> 

void Upload_Click(Object sender, EventArgs e) { 

string strFileName, strRootUpload, strUniqueName;
int index;
strRootUpload = Server.MapPath("./upload");
lblMessage.Text = ""; 

if (fileInp.PostedFile != null) {
try {
  strFileName = fileInp.PostedFile.FileName;
  if (strFileName != "") {
    strFileName = strFileName.Replace("/", "");
    index = strFileName.LastIndexOf("");
    strFileName = strFileName.Substring(index + 1);
    strUniqueName = System.Guid.NewGuid().ToString() + "_" + strFileName;
    fileInp.PostedFile.SaveAs(strRootUpload + "" + strUniqueName);
    lblMessage.Text = "Файл успешно загружен с именем " + strUniqueName + "< p>";
  }
}
catch (Exception ex) {
  lblMessage.Text = ex.Message + "< p>";
}
} 

} 

< /script> 

< HTML>
< HEAD>
< Title>Unique Upload< /Title>
< /HEAD>
< BODY>
< form enctype="multipart/form-data" runat="server">
< asp:Label id="lblMessage" runat="server" />
Файл:< br>
< input id="fileInp" type="file" runat="server">< br>
< asp:button text="Загрузить" OnClick="Upload_Click" runat="server" />
< /form>
< /BODY>
< /HTML> 

Файл upload_vb.aspx (написан на VB.NET): 

< %@ Page Language="VB" %> 

< script language="VB" runat="server"> 

Sub Upload_Click(ByVal sender As Object, ByVal e As EventArgs) 

Dim strFileName, strRootUpload , strUniqueName As String
Dim index As Integer 

strRootUpload = Server.MapPath("./upload")
lblMessage.Text = "" 

If Not (fileInp.PostedFile Is Nothing) Then
  Try
  strFileName = fileInp.PostedFile.FileName
  If strFileName <> "" Then
    strFileName = strFileName.Replace("/", "")
    index = strFileName.LastIndexOf("")
    strFileName = strFileName.Substring(index + 1)
    strUniqueName = System.Guid.NewGuid().ToString() + "_" + strFileName
    fileInp.PostedFile.SaveAs(strRootUpload &#038; "" &#038; strUniqueName)
    lblMessage.Text = "Файл успешно загружен с именем " &#038; strUniqueName &#038; "< p>"
  End if
  Catch ex As Exception
    lblMessage.Text = ex.Message &#038; "< p>"
  End Try
End If 

End Sub 

< /script>


Фев 24 2011

Удаленный запуск приложений и включение результатов их работы на ASP страницу:

Category: ASPgizmaz @ 9:27 пп

Удаленный запуск приложений и включение результатов их работы на ASP страницу:

Бывают ситуации, когда на ASP страницу нужно вставить результат работы exe-файла. Типичный пример — включить результат работы CGI-скрипта. Выход из ситуации — использование Windows Scripting Host версии 5.6 или выше. Скачать последнюю версию WSH можно с сайта http://msdn.microsoft.com.
ASP-скрипт, который решает данную задачу:

< %@ Language=VBScript%>
< %option explicit%>
< %Response.Expires = 0%>
< % Dim WshShell, oExec, inp, path, qu 'воспольз. для примера командой ping path = "ping.exe" qu = "127.0.0.1" Set WshShell = Server.CreateObject("WScript.Shell") if qu < > «» then
Set oExec = WshShell.Exec(path & » » & qu)
else
Set oExec = WshShell.Exec(path)
end if

inp = «»

‘читаем из стандартного вывода
Do While Not oExec.StdOut.AtEndOfStream
inp = inp & oExec.StdOut.Read(1)
Loop

Set WshShell = Nothing

‘вывод результата на страницу

Response.Write inp

%>