Итак, если вы используете элемент управления uploadify, у вас должно быть что-то в вашей разметке, например:
<script type="text/javascript">
// <![CDATA[
var id = "55";
var theString = "asdf";
$(document).ready(function() {
$('#fileInput').uploadify({
'uploader': 'uploadify/uploadify.swf',
'script': 'Upload.ashx',
'scriptData': { 'id': id, 'foo': theString},
'cancelImg': 'uploadify/cancel.png',
'auto': true,
'multi': true,
'fileDesc': 'Image Files',
'fileExt': '*.jpg;*.png;*.gif;*.bmp;*.jpeg',
'queueSizeLimit': 90,
'sizeLimit': 4000000,
'buttonText': 'Choose Images',
'folder': '/uploads',
'onAllComplete': function(event, queueID, fileObj, response, data) {
}
});
});
// ]]></script>
<input id="fileInput" name="fileInput" type="file" />
Затем вы хотите иметь Generic Handler, который представляет собой файл Ashx.Что происходит, так это то, что этот обработчик вызывается, когда элемент управления uploadify хочет загрузить один из файлов в очереди, которую он имеет.Откройте VS -> щелкните правой кнопкой мыши по вашему проекту -> Добавить новый -> Выберите общий обработчик -> Назовите его как-то как Upload.ashx.
Возьмите этот файл и поместите в него что-то похожее на это:
public class Upload : IHttpHandler, IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
try
{
HttpPostedFile file= context.Request.Files["Filedata"];
int id = (Int32.Parse(context.Request["id"]));
string foo = context.Request["foo"];
file.SaveAs("C:\\" + id.ToString() + foo + file.FileName);
context.Response.Write("1");
}
catch(Exception ex)
{
context.Response.Write("0");
}
}
}
Он поставляется по умолчанию с IsReusable () ... НЕ УДАЛЯЙТЕ ЭТО.Это необходимо, просто оставьте это там, или вы получите странную ошибку.
Кроме того, вы можете посмотреть это шаг за шагом здесь: http://casonclagg.com/articles/6/video-tutorial-uploadify-asp-net-c-sharp.aspx
РЕДАКТИРОВАТЬ
Я думаю, вы хотите сделать это, где файл является объектом HttpPostedFile:
BinaryReader b = new BinaryReader(file.InputStream);
byte[] binaryData = b.ReadBytes(file.InputStream.Length);