Рейтинг:
4
RickZeeland
Если у вас есть веб-сервер или облачное хранилище, вы можете хранить там свои pdf-файлы, а в базе данных SQL Server вы можете хранить только URL-адреса pdf-файлов.
Не пытайтесь сделать это с помощью Dropbox, теперь уже невозможно поделиться URL-адресами простым способом.
Если ваши файлы не слишком велики вы можете получить их следующим образом:
using(WebClient client = new WebClient()) {
string s = client.DownloadString(url);
}
Goran Bibic
Google cloud 100 ГБ? Может быть, это решение?
RickZeeland
Это должно сработать, перейдите на Google Диск и нажмите кнопку "получить доступную ссылку".
Это будет выглядеть примерно так: https://drive.google.com/open?id=0B5ZQZ7etv3XpaEZpYlBXcUlOXYZ
Goran Bibic
Вставка местоположения файла в sql
querySaveStaff.Parameters.Add("@file_location", SqlDbType.VarChar, 255).Value = file_locationTextBox.Text;
Как получить файл из какого-то места?
Я пробую на datagrid изменения выбора, но не успешно
//byte[] bt;
пробовать
{
if (documentsDataGridView.SelectedRows[0].Ячейки["pdf_file"].Значение != null)
{
//byte[] ap = (byte[])documentsDataGridView.SelectedRows[0].Ячейки["pdf_file"].Ценность;
//MemoryStream ms = новый MemoryStream(ap);
////dataPictureBox.система визуализации.Рисование.Изображение.FromStream(МС);
//axAcroPDF1.src = локальное кодирование.GetString(ms.Метод toArray());
//использование (диалоговое окно openfiledialog ОФД = новое диалоговое окно openfiledialog()
//{
// ValidateNames = true, то функция = false, то фильтр = "формат PDF|*.формат PDF" }) {
// if (ofd.ShowDialog() == DialogResult.ОК)
// {
// bt = null;
//MemoryStream fs = новый MemoryStream(bt);
//bt = новый байт[fs.Длина];
// fs.Read(bt, 0, (id)fs.Длина);
// axAcroPDF1.src = локальное кодирование.Метода getString(ПС.Метод toArray());
//fs.Close();
// }
// }
StringBuilder text = новый StringBuilder();
// using (PdfReader reader = новый PdfReader("D:\\SPEDICIJA MERIDIJAN\\informacija\\SKM_28718052812170.pdf"))
использование (PdfReader reader = новый PdfReader("D:\\SPEDICIJA MERIDIJAN\\informacija\\SKM_28718052812170.pdf"))
{
for (int i = 1; i <= reader.NumberOfPages; i++)
{
текст.Добавить(PdfTextExtractor.GetTextFromPage(reader, i));
}
}
// Вы можете читать из текста.Метод toString();
//byte[] ap = (byte[])documentsDataGridView.SelectedRows[0].Ячейки["pdf_file"].Ценность;
//string tempName = путь.Комбинат(Путь.GetTempPath(), Путь.GetRandomFileName() + ".формат PDF");
//Файл.WriteAllBytes(tempName, ap);
//axAcroPDF1.src = tempName;
}
еще {
axAcroPDF1.в src = нуль;
}
}
ловить
{
axAcroPDF1.в src = нуль;
}
Goran Bibic
Какая-то помощь?
Goran Bibic
Некоторые решения, такие как чтение из строкового пути(file_locationTextBox.Text)
RickZeeland
Чтобы читать с URL-адреса, попробуйте сделать следующее:
использование(WebClient client = новый WebClient()) {
строка s = клиент.DownloadString(url);
}
Goran Bibic
"C:\Users\test\Google Привод"
Может быть, так?
Поскольку у меня есть на каждом компьютере эта папка, я сначала сканирую документы в pdf в этой папке, а затем вставляю и читаю из приложения
RickZeeland
Это не сработает, это должен быть URL-адрес, если другие пользователи должны получить доступ к файлу.
Goran Bibic
ОК.Я попробую
Goran Bibic
Чтобы читать с URL-адреса, попробуйте сделать следующее:
использование(WebClient client = новый WebClient()) {
строка s = клиент.DownloadString(url);
}
Вместо URL используйте это
https://drive.google.com/open?id=0B5ZQZ7etv3XpaEZpYlBXcUlOXYZ
?
Рейтинг:
1
OriginalGriff
Все зависит от того, что вы с ним делаете и почему.
Нет никакого "лучшего решения" - некоторые будут лучше под эти обстоятельства, другие будут лучше под те Ни одно решение не будет соответствовать всем обстоятельствам.
Хранение PDF-файлов непосредственно в вашей БД имеет некоторые преимущества, но также может увеличить использование полосы пропускания, и это потенциально может замедлить работу SQL, а также, возможно, сделать файл базы данных SQL значительно больше со всеми вытекающими отсюда недостатками резервного копирования - но хранение местоположения означает, что каждая система, которая хочет получить данные, нуждается в доступе к этому общему местоположению, а также что вам нужно позаботиться о потенциальных конфликтах имен файлов: например, могут быть сотни документов под названием "Отчет".
Подумайте о том, чего именно вы пытаетесь достичь, и как документы должны обрабатываться в вашей системе в целом - тогда вы сможете принимать рациональные решения о том, как хранить вещи.
Goran Bibic
Вставка местоположения файла в sql
querySaveStaff.Parameters.Add("@file_location", SqlDbType.VarChar, 255).Value = file_locationTextBox.Text;
Как получить файл из какого-то места?
Я пробую на datagrid изменения выбора, но не успешно
//byte[] bt;
пробовать
{
if (documentsDataGridView.SelectedRows[0].Ячейки["pdf_file"].Значение != null)
{
//byte[] ap = (byte[])documentsDataGridView.SelectedRows[0].Ячейки["pdf_file"].Ценность;
//MemoryStream ms = новый MemoryStream(ap);
////dataPictureBox.система визуализации.Рисование.Изображение.FromStream(МС);
//axAcroPDF1.src = локальное кодирование.GetString(ms.Метод toArray());
//использование (диалоговое окно openfiledialog ОФД = новое диалоговое окно openfiledialog()
//{
// ValidateNames = true, то функция = false, то фильтр = "формат PDF|*.формат PDF" }) {
// if (ofd.ShowDialog() == DialogResult.ОК)
// {
// bt = null;
//MemoryStream fs = новый MemoryStream(bt);
//bt = новый байт[fs.Длина];
// fs.Read(bt, 0, (id)fs.Длина);
// axAcroPDF1.src = локальное кодирование.Метода getString(ПС.Метод toArray());
//fs.Close();
// }
// }
StringBuilder text = новый StringBuilder();
// using (PdfReader reader = новый PdfReader("D:\\SPEDICIJA MERIDIJAN\\informacija\\SKM_28718052812170.pdf"))
использование (PdfReader reader = новый PdfReader("D:\\SPEDICIJA MERIDIJAN\\informacija\\SKM_28718052812170.pdf"))
{
for (int i = 1; i <= reader.NumberOfPages; i++)
{
текст.Добавить(PdfTextExtractor.GetTextFromPage(reader, i));
}
}
// Вы можете читать из текста.Метод toString();
//byte[] ap = (byte[])documentsDataGridView.SelectedRows[0].Ячейки["pdf_file"].Ценность;
//string tempName = путь.Комбинат(Путь.GetTempPath(), Путь.GetRandomFileName() + ".формат PDF");
//Файл.WriteAllBytes(tempName, ap);
//axAcroPDF1.src = tempName;
}
еще {
axAcroPDF1.в src = нуль;
}
}
ловить
{
axAcroPDF1.в src = нуль;
}
Goran Bibic
Какая-то помощь?
Goran Bibic
Некоторые решения, такие как чтение из строкового пути(file_locationTextBox.Text)