1

我必须修复一个使用 asp.net 的网站上的错误,但我对此了解不多(asp.net c# mvc)...

问题出在名为 uploadify 的插件中,它要求脚本上传文件:

'script': '<%= ResolveUrl("~/Build/UploadImages")%>/<%= ViewData["build_id"] %>',

在浏览器中显示如下:

'script': '/prod/cms/Build/UploadImages/680ad442-8e9c-459c-b253-e9c389c1622b',

问题是文件夹'Build'不存在,我认为它是由asp.net创建的......

我找不到上传文件的代码......我在所有文件中用“SaveAs”、“SaveFileAs”、“Upload”、“Uploadify”等词到处搜索,但我仍然没有找到它。 .

uploadify 给出的问题是显示 100% 的上传后出现“HTTP 错误”,我在谷歌上搜索但没有运气......我想如果我找到了上传文件的脚本,也许我可以修复它

这是我的文件的所有脚本:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<Framework.Models.Image>>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Photo
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <h2>
        Photo</h2>
    <p>
        <label>
            Tipo:</label>
        <%= Html.DropDownList("type", (SelectList)ViewData["types"], new { onchange = "changeScript(this.value)" })%>
    </p>
    <div id="dvUpload">
        <input id="upload" name="upload" type="file" />
        <a href="#" onclick="Upload('<%= ViewData["build_id"] %>')">Fazer Upload</a> | <a
            href="javascript:$('#upload').uploadifyClearQueue();">Limpar Uploads</a>
    </div>

   <%-- <% using (Html.BeginForm("UploadImages", "build", new { id = ViewData["build_id"], type = "c1956908-64f5-4195-ba73-4d7710d560d7" }, FormMethod.Post, new { enctype = "multipart/form-data" }))
       {%>
            <input id="File1" name="upload" type="file" />
            <input type="submit" value="Enviar" />
    <%} %>--%>
    <br />
    <br />
    <table>
        <tr>
            <th>
            </th>
            <th>
                Type
            </th>
            <th>
                Imagem
            </th>
            <th>
                Legenda
            </th>
        </tr>
        <% foreach (var item in Model)
           { %>
        <tr>
            <td>
                <%= Html.ActionLink("Apagar", "deleteimage", new { id = item.Properties.id, build_id = item.Properties.build_id }, new { onclick = "return confirm('Confirma esta ação?')" })%>
            </td>
            <td>
                <%= Html.Encode(item.Type)%>
            </td>
            <td>
                <img src="<%= Cms.Helpers.Settings.CMS_ADDRESS + item.Properties.url_address %>" width="150" height="100" />
            </td>
            <td>
                <%= Html.TextBox(item.Properties.id.ToString(), item.Properties.description) %>
                <input type="button" value="Ok" onclick="saveLegend('<%= item.Properties.id.ToString() %>')" />
            </td>
        </tr>
        <% } %>
    </table>
    <p>
        <%= Html.ActionLink("Create New", "Create") %>
    </p>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HeaderContent" runat="server">

    <script type="text/javascript" src="<%= ResolveUrl("~/Content/JS/swfobject.js") %>"></script>

    <script type="text/javascript" src="<%= ResolveUrl("~/Content/JS/jQuery/jquery.uploadify.v2.1.0.js") %>"></script>

    <script type="text/javascript">

        var html = "";

        jQuery(document).ready(function() {

            html = jQuery("#dvUpload").html();

            jQuery("#upload").uploadify({
                'uploader': '<%= ResolveUrl("~/Content/Flash/uploadfy.swf") %>',
                'script': '<%= ResolveUrl("~/Build/UploadImages")%>/<%= ViewData["build_id"] %>',
                'cancelImg': '<%= ResolveUrl("~/Content/Images/cancel.png") %>',
                'folder': '<%= ResolveUrl("~/Content/Images") %>',
                'multi': true,
                'simUploadLimit': 10,
                'fileDesc': 'Apenas Imagens são permitidas',
                'fileExt': '*.gif;*.jpg;*.png',
                'onError'      : function(errorType) {
                    //alert('The error was ' + errorType.toSource());
                    alert(JSON.stringify(errorType, null, 4));
                },
                'onComplete': function() {
                    alert("foi tudo");
                }
            });

            AddNullValueSelectObject('type');

        });

        function Upload(build_id) {
            jQuery('#upload').uploadifyUpload();
        }

        function changeScript(val)
        {
            jQuery("#dvUpload").empty();
            jQuery("#dvUpload").html(html);

            var culture = jQuery('#culture').val();

            jQuery("#upload").uploadify({
                'uploader': '<%= ResolveUrl("~/Content/Flash/uploadfy.swf") %>',
                'script': '<%= ResolveUrl("~/Build/UploadImages")%>/<%= ViewData["build_id"] %>?type=' + val,
                'cancelImg': '<%= ResolveUrl("~/Content/Images/cancel.png") %>',
                'folder': '<%= ResolveUrl("~/Content/Images") %>',
                'multi': true,
                'simUploadLimit': 10,
                'fileDesc': 'Apenas Imagens são permitidas',
                'fileExt': '*.gif;*.jpg;*.png',
                'onError'      : function(errorType) {
                    //alert('The error was: ' + errorType.toSource());
                    alert(JSON.stringify(errorType, null, 4));
                },
                'onComplete': function() {
                    alert("foi tudo");
                }
            });
        }

        function saveLegend(id)
        {
            var text = jQuery('#' + id).val();

            jQuery.ajax({
                type: 'GET',
                url: '<%= ResolveUrl("~/build/UpdatePhotoLegend")%>/' + id,
                data: 'legend=' + text,
                success: function(data) {
                    alert('Alterado com sucesso!');
                }
            });
        }
        function AddNullValueSelectObject(object_id) {
            jQuery('#' + object_id).append("<option value='00000000-0000-0000-0000-000000000000'>--- SELECIONE ---</option>");
            jQuery("#" + object_id + " option[value='00000000-0000-0000-0000-000000000000']").attr('selected', 'selected');
        }
    </script>

</asp:Content>

提前致谢...

4

2 回答 2

0

通常我不会回答,除非我很确定我的答案,但是,因为没有其他人回应......

我没有使用 uploadify 的经验,但看起来您使用的是旧版本的 uploadify,并且 api 已经发生了很大变化,所以我很难确定。我认为'script'参数实际上是指通常处理上传文件保存的服务器端“脚本”(当前版本http://www.uploadify.com/documentation/uploadify中的'uploader'参数/上传者/)。

你有一个带有 UploadImages 动作(方法)的 BuildController 类吗?如果是这样,那可能是您的错误的原因之一(保存到磁盘时出错)。如果您确实有一个 BuildController,我想知道解析 url 的调用是否正确?解析的路径对我来说很有趣(通常你不会在 mvc 中解析基于路由的 url,因为解析 url 不支持路由)。

如果您没有 BuildController 而我完全不在,请告诉我,我将删除此答案。这有点像在黑暗中拍摄。但这是有道理的。

编辑:以防万一您根本没有 MVC 经验,“构建文件夹”中的代码应位于您的 mvc Web 应用程序中的一个名为 Controllers 的文件夹下,该文件夹位于名为 UploadImages 的方法中的 BuildController 类中。

于 2012-07-03T05:45:31.933 回答
0

将我的评论提升为答案

脚本可能作为资源嵌入。尝试使用 ILSpy 来确认这一点。在这种情况下,您将需要访问源代码。此外,可能脚本已被缩小/混淆,这就是您找不到任何东西的原因。

于 2012-07-03T20:22:05.557 回答