Makale numarası: 892442 - Son Gözden Geçirme: 12 Mart 2010 Cuma - Gözden geçirme: 2.0

Kullandığınızda, kullanıcıların tam olarak nitelenmiş bir yol göndermeniz gerekir "input type = dosya" öğesinde, Windows XP Service Pack 2'de bir Web uygulaması

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Belirtiler

Microsoft Windows XP Service Pack 2'de (SP2), kullanabilecek bir input type = dosya uygulama öğesi. Öğenin metin kutusu bölümünde bir yol yazın kullanıcı izin ve tam nitelenmiş bir yol sağlayan sürücü içeren ve kök klasöründe, aşağıdaki koşullardan biri oluşur:
  • Kullanarak, kullanıcı formu gönderdiğinde, bir input type = gönderme öğesi, hiçbir şey olmuyor.
  • Kullanıcı, form denetimi içeren bir bağlantıyı tıklatarak ve, bağlantı Gönder</a0> yöntemini çağıran bir JavaScript kodu çağırır göndermeye çalışırsa, kullanıcı bir "erişim hata iletisi kodlama reddedildi" alır. Örneğin, sunucu tarafı Microsoft ASP.NET denetimleri postbacks Gönder yöntemini kullanabilirsiniz.

Pratik Çözüm

Bu davranışa geçici bir çözüm için şu adımları izleyin:
  1. Gönder yöntemini çağıran bir kod erişebiliyorsanız, komut dosyası hatası işlemek ve sonra tam olarak nitelenmiş bir yol girin kullanıcıdan.
  2. Kullanıcı, metin kutusunun içeriğini düzenlemesini engeller. Bu dosya yolu seçmek için Gözat ' ı tıklatın bir kullanıcının etkin zorlar. Örneğin, kullanıcıların Microsoft ınternet Explorer'da metin kutusunun içeriği düzenlemelerini engellemek için aşağıdaki kod örneği kullanın.
    <html>
    	<head>
    		<script language="javascript">
    		<!--
    function test()
    {
    	if( event.keyCode == 8 )
    	{
    		return false;
    	}
    	return true;
    }
    		-->
    		</script>
    	</head>
    	<body>
    		<form name="Form1" action="SimpleResults.aspx" method="post" ID="Form1">
    			<input id="txtFileUpload" onkeydown="return test();" onbeforeeditfocus="return false;" type="file" name="txtFileUpload" />
    			<p />
    			<input type="submit" value="Submit" ID="Submit1" NAME="Submit1" />
    		</form>
    	</body>
    </html>
  3. Bu işlevi sağlamak üzere kendi ActiveX denetimi oluşturun.

Durum

Bu davranış tasarım yüzündendir.

Daha fazla bilgi

Davranışı Yeniden Oluşturma Adımları

  1. Aşağıdaki kod örneği Simple.html adlı bir dosyaya yapıştırın ve Web sunucunuz dosyayı kaydedin.
    <html>
    <head>
        <script language="javascript">
    function go()
    {
    	theform = document.Form1;
    	theform.submit();
    }
        </script>
    </head>
    <body>
        <form name="Form1" action="SimpleResults.aspx" method="post">
            <h2>This example demonstrates the change to the "input type=file" element in Windows XP SP2:
            </h2>
            <p>
                Note: You cannot put information in an "input type=file" element by using script code.  For more information, see the following article in the Microsoft Knowledge Base: <a href="http://support.microsoft.com/kb/266087">266087</a><br />
                <input id="txtFileUpload" style="WIDTH: 346px; HEIGHT: 20px" type="file" size="30" name="txtFileUpload" />
            </p>
            <p>
                1. Now, if you enter a path that is missing the drive letter and root folder in
                the text box part of the control, and&nbsp;then you click submit, the Submit method call will not
                be permitted.  Therefore, nothing will occur.<br />
                <input type="submit" value="Try to use a Submit button" />
            </p>
            <p>
                2. Also, if you enter a path that is missing the drive letter and root folder in the
                text box part of the control, and&nbsp;then you click a link that uses scripting to submit
                the form, you receive an "Access is Denied" scripting error message.<br />
                <a onclick="javascript:go()" href="#">This link causes the "Access is Denied" error message.</a>
            </p>
        </form>
    </body>
    </html>
  2. Aşağıdaki kod örneği SimpleResults.aspx.
    <%@ Page Language="C#" %>
    <script runat="server">
        void Page_Load()
        {
            txtResults.Text = Request.Form["txtFileUpload"];
        }
    </script>
    <html>
    <head>
    </head>
    <body>
        <form runat="server">
            <p>
                Here are the results of submitting the contents of the "input type=file" element. 
            </p>
            <p>
                <asp:TextBox id="txtResults" runat="server" Width="469px"></asp:TextBox>
            </p>
        </form>
    </body>
    </html>
  3. Bir Web tarayıcısında Simple.html açın.
  4. Metin kutusuna, input type = dosya öğe C:\ veya benzer bir yol içermeyen bir metin yazın.
  5. Gönder ' i tıklatın. Hiçbir şey olmuyor dikkat edin.
  6. Bu bağlantıyı neden "erişim reddedildi" hata iletisi.'ı tıklatın. Bir "Erişim reddedildi" komut dosyası hata iletisi alırsınız.

Referanslar

Daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/ms535263.aspx (http://msdn2.microsoft.com/en-us/library/ms535263.aspx)

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Windows XP Service Pack 2, Ne zaman ne ile kullanilir:
    • Microsoft Internet Explorer 6.0
  • Windows Internet Explorer 7
Anahtar Kelimeler: 
kbmt kbprb KB892442 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:892442  (http://support.microsoft.com/kb/892442/en-us/ )