gpt4 book ai didi

c# - PHP调用的C#程序中的文件访问

转载 作者:搜寻专家 更新时间:2023-10-31 22:10:35 25 4
gpt4 key购买 nike

这是上下文:我必须为允许用户将 csv 文件导入 MySQL 数据库的内部网站编写源代码。

这种导入非常庞大,这就是我编写 C# 程序的原因。

这个程序创建了一些线程来读取我的 csv 文件的一些行。

这些线程控制、改变类型并使用 SQL 将我的数据插入 MySQL 数据库,如下所示:

insert into table1 (fields) values (dataline 1 ), (data line 25),...,(data line n);

此请求存在 9 个表。

每个人都可以使用这个程序,因为源代码是动态的:插入数据的例子,我必须更改它,因为我无法将它们放入数据库中的字段名中)。

只能使用名为 MAP.csv 的文件创建此词典

例子:

table   /   field     /    type  /   header

table 1 / field1_table1 /string / hêàder

table 1 / field2_table1/ int / header1

table 2 / field1_table2/ date / hêàder2

table 1 / field3_table1/ string / hêàder3

当我执行 program.exe 时,我的 C# 程序运行良好

但是当我用带有 exec("programpath.exe parameter1 parameter2",return,otherreturn) 函数的 php 调用它时,这个程序无法运行。

事实上,当我尝试使用我的 C# 程序访问 config.xml、MAP.csv、otherfile.txt/csv/.. 等外部文件时。执行停止,出现 Windows 错误,提示“program.exe 停止工作”(program.exe à cessé de fonctionner 法语)。

所以我试着简单地写下我的问题:当我尝试使用由 php 调用的 c# 程序访问一个文件时,出现了一个窗口问题,它停止了 traitment。

编辑:我找到了解决方案,我只需要执行 cd c:/path_program/事实上,当我启动我的网站时,当前文件夹不是 c:/而是 Symfony 启动的文件夹...只是初学者的错误。

最佳答案

可能是权限问题。

Web 服务器在特定的安全上下文(用户)下运行。取决于使用的 Web 服务器(IIS、apache 等)及其配置。

当您使用 PHP 执行应用程序时,它将在与您的 Web 服务器相同的“用户”下运行。

您说您的应用程序似乎在访问外部文件后立即崩溃 --> 很可能执行网站的用户有权运行 exe,但无权访问配置文件。

您使用相对路径访问文件:要将应用程序路径的相对路径映射到绝对路径,您可以使用此代码段:

string appPath = System.Windows.Application.ResourceAssembly.Location;
string relativeResourcePath = "RESSOURCES/file.csv";
string absolutePath = System.IO.Path.Combine(appPath, relativeResourcePath);

关于c# - PHP调用的C#程序中的文件访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13450232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com