Member 14538464 Ответов: 1

Как я могу использовать несколько ссылок на один и тот же файл


Привет, Каждый ...
Я хочу выяснить, можем ли мы сделать несколько временных адресов на хосте в разное время и разные адреса в один и тот же файл?! Как скачать ссылку?

пожалуйста, ответь мне! есть?

Что я уже пробовал:

Мне нечего и пробовать! пожалуйста будьте добры

Maciej Los

?!?

Afzaal Ahmad Zeeshan

Я думаю, что вы можете просто направить весь трафик к определенному файлу на сервере.

1 Ответов

Рейтинг:
1

OriginalGriff

Существует множество способов сделать это, начиная со ссылки на страницу, которая не существует в вашей системе: "mydomain.com/downloads/F543210987-и справляюсь с ошибкой 404. Получите имя файла, переведите его в фактический файл (вероятно, через БД) и подайте его в качестве элемента загрузки.
Затем есть страницы ASHX, которые делают то же самое, но не нуждаются в БД.
Или файл Download.aspx, который принимает строку запроса - я использую этот файл.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FileTransferDownload.aspx.cs" Inherits="FileTransferDownload" %>

<%  
    // Send a download file to the client given the filename.    
    string guid = Request.QueryString["file"];
    string fileName = "ERROR";
    byte[] data = new byte[] { 0, 0, 0, 0 };
    string strCon = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["DownloadDatabase"].ConnectionString;
    using (System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(strCon))
        {
        con.Open();
        string strcmd = "SELECT [iD] ,cn.[fileName],[description] ,[dataContent] ,[version] " +
                        "FROM dlContent cn " +

                        "WHERE cn.iD=@ID";
        using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(strcmd, con))
            {
            cmd.Parameters.AddWithValue("@ID", guid);
            using (System.Data.SqlClient.SqlDataReader r = cmd.ExecuteReader())
                {
                if (r.Read())
                    {
                    fileName = (string) r["filename"];
                    data = (byte[]) r["dataContent"];
                    }
                }
            }
        }
    Response.Clear();
    Response.AddHeader("Cache-Control", "no-cache, must-revalidate, post-check=0, pre-check=0");
    Response.AddHeader("Pragma", "no-cache");
    Response.AddHeader("Content-Description", "File Download");
    Response.AddHeader("Content-Type", "application/force-download");
    Response.AddHeader("Content-Transfer-Encoding", "binary\n");
    Response.AddHeader("content-disposition", "attachment;filename=" + fileName);
    Response.BinaryWrite(data);
    //Response.WriteFile("wm5ftdata/" + fileName);
    Response.End();  
%>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class FileTransferDownload : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
        {

        }
    }


Maciej Los

Хммм...
"куча способов" не должно быть "много способов"?
Ваше здоровье!
Мацей

OriginalGriff

"Куча способов" или "много способов" было бы прекрасно, как и "куча способов" или "много способов".

Но нет, вы правы: "груз путей" сам по себе не был хорошим английским языком. Исправлено.