Как получить отсканированное изображение со сканера в качестве входных данных для поля ввода HTML-файла с помощью веб-твена?
Как получить вывод изображения со сканера в качестве файла ввода для поля ввода файла HTML. Я использую веб-интерфейс Dynasoft Web Twain для сканирования изображений. http://www.dynamsoft.com/Support/DWTGuide/Dynamic%20Web%20TWAIN%20SDK.html
Фрагмент, чтобы получить отсканированное изображение -
var DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
DWObject.IfDisableSourceAfterAcquire = true; // Source will be closed automatically after acquisition.
DWObject.SelectSource(); // Select a Data Source (a device like scanner) from the Data Source Manager.
DWObject.OpenSource(); // Open the source. You can set resolution, pixel type, etc. after this method. Please refer to the sample 'Scan' -> 'Custom Scan' for more info.
DWObject.AcquireImage();
Фрагмент для ввода файла -
<input type="file" id="fileselect" accept="image/*,application/pdf" capture="camera" app-file-select="onFileSelect($files)" app-change="getFile($files)" app-model="file" style="display:none">
HTML-файл обрабатывается как MultipartFile на стороне сервера.
заранее спасибо
2 ответа
Вам не нужно создавать элемент ввода. Просто используйте API HTTPUploadAllThroughPostAsPDF или HTTPUploadThroughPostAsMultiPagePDF. На стороне сервера вы можете использовать любые языки программирования, которые вам нравятся.
Например, ASP.NET:
<%@ Page Language="C#" %>
<%
try
{
String strImageName;
HttpFileCollection files = HttpContext.Current.Request.Files;
HttpPostedFile uploadfile = files["RemoteFile"];
strImageName = uploadfile.FileName;
uploadfile.SaveAs(Server.MapPath(".") + "\\UploadedImages\\" + strImageName);
}
catch
{
}
%>
Используйте RemoteFile для извлечения содержимого файла.
Dynamic Web Twain (DWT) не предоставляет захваченное изображение браузеру, поэтому браузер может использовать его в качестве поля ввода. Но мы должны загрузить его на наш сервер. DWT предоставляет ряд функций для этой цели. Вы можете использовать любое из следующего, которое отвечает вашим потребностям-
Функции FTP:
- FTPUpload ()
- FTPUploadAllAsMultiPageTIFF ()
- FTPUploadAllAsPDF ()
- FTPUploadAsMultiPagePDF ()
- FTPUploadAllAsMultiPageTIFF ()
- FTPUploadAllAsPDF ()
- FTPUploadAsMultiPagePDF ()
- FTPUploadAsMultiPageTIFF ()
- FTPUploadDirectly ()
- FTPUploadEx ()
HTTP функции:
- HTTPUploadAllThroughPostAsMultiPageTIFF ()
- HTTPUploadAllThroughPostAsPDF ()
- HTTPUploadThroughPost ()
- HTTPUploadThroughPostAsMultiPagePDF ()
- HTTPUploadThroughPostAsMultiPageTIFF ()
- HTTPUploadThroughPostDirectly ()
- HTTPUploadThroughPostEx ()
Вы знаете лучше, какой из них подходит для вас. Например, если вы хотите загрузить все изображения в формате PDF и хотите использовать пост-запрос HTTP, вы должны использовать HTTPUploadAllThroughPostAsPDF.
DWObject.HTTPUploadAllThroughPostAsPDF(location.hostname, $POST_URL, 'my-test-file.pdf');
Возможно, вам понадобится передать некоторые другие поля вместе с файлом. В этом случае вы можете использовать SetHTTPFormField. Вот подробный пример загрузки изображений в формате PDF.
DWObject.SetHTTPFormField("field1", "field1 value");
DWObject.SetHTTPFormField("field2", "field2 value");
DWObject.IfSSL = ('https:' === location.protocol);
if (location.port != '') {
DWObject.HTTPPort = location.port;
} else {
DWObject.HTTPPort = (DWObject.IfSSL) ? 443 : 80;
}
DWObject.HTTPUploadAllThroughPostAsPDF(location.hostname, $POST_URL, 'my-test-file.pdf');