0

皆さん、おはようございます/午後、私は vin スキャナーBarcodeLibをテストしてきましたが、最終的に Visual Studio 2012 を使用して動作するようになりました。

画像をリーダーにハードコードする前に

string[] results = BarcodeReader.read(@"C:/scan/image.jpg", BarcodeReader.CODE39);

input typeしかし、今はASPでaを使用したいので、結果が表示されなくなりました。

私の質問は、なぜこの時点で何も出力しないのですか?

私の考えでは、おそらくそれは if ステートメントでした。

ここでコーディング

namespace testWebBarcode
{
      protected void bnvinoneclick_Click(object sender, EventArgs e)
        {
           HttpPostedFile fileImage = Request.Files["FileUpload"];

            if (fileImage != null && fileImage.ContentLength > 0)
             {
               string imageFileName = Path.GetFileName(fileImage.FileName);

                //reads barcode (@"filename", BarcodeReader.TypeBarcode)
                string[] results = BarcodeReader.read(imageFileName, BarcodeReader.CODE39);
                string answer = string.Empty;
                for (int i = 0; i < results.Length; i++)
                     {
                       answer = results[i];
                     }
               string finalVin = "The vin is: " + answer;
               lblvin.Text = finalVin;
             }

        }

}

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="testWebBarcode._Default" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
   <script type="text/javascript">
       function readURL() 
          {

           document.getElementById('<%=bnvinoneclick.ClientID%>').click();
          }

   </script>


</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">

    <p>
        <asp:Label ID="lblvin" runat="server" Text=""></asp:Label>
    </p>
    <p>
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
    </p>
    <p>

       <input type="file" accept="image/*" runat="server" id="FileUpload" onchange="readURL();" />



        <asp:Button ID="bnvinoneclick" runat="server" Text="Check vin" 
            onclick="bnvinoneclick_Click" />
            </p>

</asp:Content>

私の問題を確認するために時間を割いていただきありがとうございます。

4

2 に答える 2

0

クライアントfileImage.FileName上のファイルの名前が表示されるため、サーバーで使用できない場合があります (.NET コードはクライアント側ではなくサーバー側で実行されることに注意してください) 。あなたが望むかもしれないのは次のとおりです。

  1. ユーザーは、たとえば C:\MyFiles\uploadme.jpg からファイルをアップロードします (これはFileName、コードでプロパティを使用するときに取得する可能性が高いパスです)
  2. ファイルをサーバーに保存します(たとえば、D:\<MyServerDirectory>\UploadedImagesフォルダーなどに)
  3. ファイルがサーバーに保存されたら、ファイルを操作します

それを保存し(例についてはこれBarcodeを参照)、保存した場所のパスをメソッドに渡すことをお勧めします(現在は「サーバー」パスとクライアントパスであると考えてください)。

于 2013-03-29T16:59:21.593 に答える
0

最初の「動作する」例では、ファイル システム パスを使用してイメージを読み取っています (つまり、ファイル システムからファイルを読み取っています)。

2 番目の例では、HttpPostedFileオブジェクトからファイル名を渡しています。ここで入力ストリームの内容を読み取る必要があります。私の推測では、バーコード読み取りメソッドがファイル システム内でファイルを見つけようとしているのに、見つけられません..?

入力ストリームの内容を読み取り、HttpPostedFileそれをディスクに保存して、バーコード ライブラリの読み取りメソッドにバイト配列を単純に渡すことができない場合は、そこから読み取ります。

http://msdn.microsoft.com/en-us/library/system.web.httppostedfile.aspx

于 2013-03-29T16:56:14.800 に答える