Обертка вокруг GNU ld, которая не поддерживает скрипты компоновщика
. Некоторые .so-файлы на самом деле являются GNU ld ссылками-компоновщиками , например. Файл libtbb.so является текстовым файлом ASCII с этим содержимым:
INPUT (libtbb.so.2)
Некоторые более сложные сборки могут не поддерживать это. Например, если вы включаете -v в параметры компилятора, вы можете видеть, что mainwin gcc wrapper mwdip отбрасывает файлы команд сценария компоновщика в подробном списке результатов библиотек для ссылки. Простая работа вместо файла командной строки ввода сценария компоновщика вместо копии (или символической ссылки), например
cp libtbb.so.2 libtbb.so
Или вы можете заменить аргумент -l полным путем .so, например вместо -ltbb
сделать /home/foo/tbb-4.3/linux/lib/intel64/gcc4.4/libtbb.so.2
finaly я получил ответ на любой файл, который вы можете сохранить в db: -
Шаг 1: Получить информацию документа как двоичную (преобразовать весь текст в бинарный формат ascii, если у вас есть какой-либо функциональный оператор, он сломает ваш ЗАВЕРШЕННЫЙ ЗАПРОС).
Шаг 2: Получите расширения Docment, например (.docx, .pdf, .ppt), и включите их с помощью запроса INSERT QUERY.
blockquote>if (file != null && file.ContentLength > 0) { string contentType = file.ContentType; byte[] fileData = new byte[file.InputStream.Length]; file.InputStream.Read(fileData, 0, fileData.Length); string OriginalName = Path.GetFileName(file.FileName); string Username = User.Identity.Name; Models.File myFile = new Models.File(contentType, OriginalName, fileData, Username); myFile.Save(); }
3: При извлечении документов вы можете использовать это как
blockquote>public ActionResult Download() { string Originalname = string.Empty; byte[] FileData = null; var requestedID = RouteData.Values["id"]; if (requestedID.ToString() != null) { Guid id = new Guid(requestedID.ToString()); DataSet ds = new DataSet(); Models.UsersGroups dt = new Models.UsersGroups(); ds = dt.GetItem(id); foreach (DataRow item in ds.Tables[0].Rows) { Originalname = item["OriginalName"].ToString(); FileData = (byte[])item["FileData"]; } Response.AppendHeader("Content-Disposition", "attachment;filename=\"" + Originalname + "\""); Response.BinaryWrite(FileData); } return File(FileData, "application/x-unknown"); }
Если вы используете php, вы можете распаковать файл в строку и затем сохранить эту строку в своей базе данных. Вероятно, вам понадобится использовать столбец blob для хранения данных. Затем вы можете получить строку, переупаковать ее и сохранить в файле в виде документа docx, прежде чем отправлять его пользователю.
Во-первых, это вообще не очень хорошая идея. Как правило, лучше сохранить ссылку на файл.
Вы можете хранить файлы в поле varbinary (max) в виде двоичного содержимого. Вы также можете сохранить его в filestream , что, вероятно, является лучшим способом. Filestream сохраняет их несколько раздельными, но позволяет отслеживать и поддерживать их вместе с базой данных.