将 Uploadify 与 Sharepoint 和 .net 一起使用

Posted

技术标签:

【中文标题】将 Uploadify 与 Sharepoint 和 .net 一起使用【英文标题】:Using Uploadify with Sharepoint and .net 【发布时间】:2010-11-22 14:44:25 【问题描述】:

我有一个由 JQuery 在共享点页面上生成的 html。我想在这个 html 中使用 uploadify 将文件上传到服务器。 Alexander 提供了以下部分基于 http://www.uploadify.com/forum/viewtopic.php?f=5&t=45 的示例代码。

上传.ashx

<%@ Assembly Name="ClassName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f099e668beaaa0f9" %>
<%@ WebHandler Language="C#" CodeBehind="Upload.ashx.cs" Class="Site.RootFiles.TEMPLATE.LAYOUTS.other.Upload" %>

上传.ashx.cs

public class Upload : IHttpHandler

    public void ProcessRequest(HttpContext context) 
    HttpPostedFile oFile = context.Request.Files["Filedata"];

   if (oFile != null) 
   const string sDirectory = "c:\\";
   if (!Directory.Exists(sDirectory))
   Directory.CreateDirectory(sDirectory);

   oFile.SaveAs(Path.Combine(sDirectory, oFile.FileName));

   context.Response.Write("1");
        
        else 
            context.Response.Write("0");
        
    
    public bool IsReusable 
        get 
            return false;
        
    

文件没有上传到服务器。唯一抛出的事件是 onProgress 事件。导航到 _layouts/other/Upload.ashx 返回 0(这是正确的),因此文件在那里。

主要问题是如何让这个与分享点一起玩?我尝试远程调试upload.ashx文件,但它不允许我在VS中添加断点,所以远程调试什么都不做。

更新 1

这个问题Visual Studio ASHX files debugging 得到了调试工作。

当我直接导航到页面时,0 被写入页面。调试器触发,一切都很好。当脚本运行时,它没有命中 Upload.ashx,因为没有命中断点。我想我对 Upload.ashx 的引用不正确。我尝试在 js 中使用http://mysite/_layouts/other/Upload.ashx 仍然没有乐趣...

更新 2

经过一些测试,问题似乎是它要求我再次登录 Share Point(我已登录)。这导致它绊倒。任何想法如何确保我的身份验证被提取?

更新 3

这真的很奇怪。我很想说这是我的 IE8 中的一个设置,因为它适用于队友。

当我直接浏览到 /_layouts/other/Upload.ashx 时,我从未被要求进行身份验证。 当我通过 JS 访问时,即使我以前登录过,有时也会被要求进行身份验证。

【问题讨论】:

【参考方案1】:

您不会上传到页面,而是上传到http handler。您应该添加您粘贴到 upload.ashx 的代码,如论坛帖子中所述。然后,在客户端,像这样使用uploadify:

$("#fileInput1").uploadify ( script: 'upload.ashx' );

【讨论】:

收到以下错误:对象引用未设置为对象的实例。在 Upload.ProcessRequest(HttpContext context) 在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 线程中的第三个帖子显示了文件夹的一些戏剧性 (uploadify.com/forum/viewtopic.php?f=5&t=45#p1909)。这会引发异常,或者文件没有​​到达服务器 - 你能检查一下是哪一个吗? 我尝试了第二批代码,但仍然没有运气。调试不远了。为什么事情从来都不简单。 好吧,我能想到的最后一件事是目标目录没有设置适当的权限。这是一个演示该方法的示例网站 - 它应该足以让您继续前进:gyoshev.net/temp/***/Uploadify.zip 您的代码似乎运行良好,当我将它推送到我的共享点站点时,我什么也得不到。没有抛出错误函数。进度被抛出一次。

以上是关于将 Uploadify 与 Sharepoint 和 .net 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

uploadify的用法与动态传参 提供demo下载

jQuery uploadify 将图像存储在 mysql 中

uploadify没反应

将 Workflow Manager 与 SharePoint 2019 错误连接

uploadify 图片上传

将SharePoint Online Client组件(Microsoft.SharePoint.Client)与powershell 2.0一起使用